Commit Graph

3425 Commits

Author SHA1 Message Date
Claudio Ortolina 9ab9b3fb3f [presto] use consistent spacing between rows 2026-05-06 12:01:27 +01:00
Claudio Ortolina c550cb8c35 ML-167: presto performance improvements 2026-05-06 12:01:27 +01:00
Claudio Ortolina 154c3d9078 Update dependencies
ecto_sqlite3 0.22.0 => 0.23.0
2026-05-05 23:30:54 +01:00
Claudio Ortolina 0706e8fdad Update dependencies
mix:
  ecto 3.13.5 => 3.13.6
  jason 1.4.4 => 1.4.5
  phoenix 1.8.5 => 1.8.6
2026-05-05 23:29:26 +01:00
Claudio Ortolina 4c4b7d65ad [presto] Update README 2026-05-05 23:24:32 +01:00
Claudio Ortolina 4ec913008e [presto] Dockerignore presto files 2026-05-05 23:23:59 +01:00
Claudio Ortolina f2220e89df [presto] Remove example file 2026-05-05 23:23:30 +01:00
Claudio Ortolina 5b6bb5ac3d [presto] Use micro cover to keep things snappy 2026-05-05 23:23:00 +01:00
Claudio Ortolina 0a9fafd35e Add micro_cover_url 2026-05-05 23:22:37 +01:00
Claudio Ortolina 971e06513c [presto] Replace unsupported characters 2026-05-05 23:22:29 +01:00
Claudio Ortolina 8c45eb6777 [presto] Sleep after 1 minute, touch to wake up 2026-05-05 23:21:59 +01:00
Claudio Ortolina 0ffc0e477c [presto] Display format and release year 2026-05-05 23:21:28 +01:00
Claudio Ortolina 3649ee34c2 [presto] Improve touch responsiveness and visual layout 2026-05-05 23:20:47 +01:00
Claudio Ortolina 55a73b6913 [presto] pin uv to avoid installation problems 2026-05-05 23:20:10 +01:00
Claudio Ortolina 9d0ab1ffc6 ML-166: First working implementation 2026-05-05 16:34:09 +01:00
Claudio Ortolina be76d0f214 Provide mini covers (150px) 2026-05-05 16:33:43 +01:00
Claudio Ortolina 3e36d0887a Update dependencies
mix:
  phoenix_live_view 1.1.29 => 1.1.30
2026-05-05 16:33:43 +01:00
Claudio Ortolina 3b4558ab9a ML-165: follow-up to fix non-working uppercase shortcuts 2026-05-05 16:33:43 +01:00
Claudio Ortolina cccd28a9f9 ML-165: implementation 2026-05-05 13:43:18 +01:00
Claudio Ortolina 008dc20ff4 Update sqlite for dev console 2026-05-05 13:11:36 +01:00
Claudio Ortolina 34ead6e8b5 ML-165: research and plan 2026-05-05 13:11:19 +01:00
Claudio Ortolina ba2566828c Fix FTS5 crashes when searching with special characters
Always wrap FTS5 query terms in phrase double-quotes instead of
checking a hardcoded list of special characters. Characters like
|, ;, +, #, @ were missing from the list, causing FTS5 syntax
errors (production errors #1 and #1398). Phrase-quoting every term
produces identical results for normal ASCII search (verified via
SQL) while safely handling any character FTS5 chokes on.

Add regression tests for bare special characters and special
characters mixed with normal words.
2026-05-05 12:05:12 +01:00
Claudio Ortolina c87e725b05 Add prettier checks to precommit 2026-05-05 10:46:09 +01:00
Claudio Ortolina 5888324cc7 Run prettier on all relevant files 2026-05-05 10:45:25 +01:00
Claudio Ortolina 0b1f839091 Remove all remnants of claude 2026-05-05 10:36:50 +01:00
Claudio Ortolina 67d7d0f7a9 Dockerignore agent folders 2026-05-05 07:19:10 +01:00
Claudio Ortolina ce5f22cef6 Remove CLAUDE.md 2026-05-05 07:18:27 +01:00
Claudio Ortolina bcbfe2be75 Move skills to .agents/skills 2026-05-05 07:18:08 +01:00
Claudio Ortolina 41f4f08831 Streamline project conventions 2026-05-04 22:32:37 +01:00
Claudio Ortolina 53217d6c0c Add consolidated nerves deployment summary 2026-05-04 22:32:18 +01:00
Claudio Ortolina 7efe277fba Add research docs about nerves deployment 2026-05-04 22:21:38 +01:00
Claudio Ortolina eb8d4776a5 Amend update-documentation skill to monitor all other skills 2026-05-04 22:11:21 +01:00
Claudio Ortolina ff3eacb9e8 Avoid setting model and context in skill 2026-05-04 22:10:58 +01:00
Claudio Ortolina 304f6c9dcc Add new skills based on project conventions 2026-05-04 22:10:04 +01:00
Claudio Ortolina 65366738a7 Add extension to format on edit 2026-05-04 21:52:03 +01:00
Claudio Ortolina dc3b31378d Run prettier on backlog folder 2026-05-04 21:22:27 +01:00
Claudio Ortolina 7bf89d9a1d Run prettier on .pi folder 2026-05-04 21:21:10 +01:00
Claudio Ortolina 286d6fecf3 Update npm dependencies
barcode-detector 3.1.2 => 3.1.3
2026-05-04 21:18:20 +01:00
Claudio Ortolina 0ffc348234 Exclude state and params from production http logs 2026-05-04 15:08:51 +01:00
Claudio Ortolina 7c6760d7db ML-158: force single-line log output in production
Three-layer architecture:
- Logster v2 handles HTTP request and LiveView socket telemetry in logfmt format
- Custom formatter as safety net escaping any remaining embedded newlines
- Config flag (single_line_logging) gating Logster attachment to prod only

Dev environment retains multi-line format for readability.
2026-05-04 15:01:10 +01:00
Claudio Ortolina 0f19afb0aa Remove conflicting dependency update message instructions 2026-05-04 14:29:26 +01:00
Claudio Ortolina d6289219a1 Update dependencies
phoenix_live_view from 1.1.28 => 1.1.29
2026-05-04 14:28:22 +01:00
Claudio Ortolina 55f05d2011 ML-161: umbrella issue is done 2026-05-04 14:19:21 +01:00
Claudio Ortolina 1ddef07bcc fix(api): handle non-integer error ids, clamp negative pagination params
- show/2: use case instead of bare Integer.parse match so
  /api/v1/errors/not-an-id returns 404 instead of crashing
- index/2: clamp limit to >= 1 and offset to >= 0 to prevent
  SQLite from treating negative values as unlimited
- Add 3 tests: non-integer id 404, negative limit/offset clamping
2026-05-04 14:17:45 +01:00
Claudio Ortolina 0ac27565f4 fix(ci): rename HURL_api_token to HURL_VARIABLE_api_token in verify workflow
Matches the variable naming convention used in test_and_deploy.yml so
the manual verification workflow can read the API token correctly.
2026-05-04 14:17:22 +01:00
Claudio Ortolina c24e4e8a59 fix(prod-errors): security, dedup, and correctness fixes for TUI and tools
- buildUrl: detect localhost/loopback addresses and default to http://
  instead of silently upgrading everything to https://
- formatRelativeTime: guard against NaN for invalid ISO8601 inputs
- Fix 'q' key silently ignored in detail mode — now closes from any mode
- Extract shared retoggleFilter() to eliminate ~50 lines of duplication
  between toggleResolved() and toggleMuted()
- Extract shared formatDetailLines() used by both formatErrorDetail()
  (LLM tool) and buildDetailLines() (TUI) — removes ~60 duplicate lines
- Extract shared fetchApi<T>() to deduplicate HTTP error handling
  between fetchErrors() and fetchError()
- renderLoading: use visibleHeight instead of full terminal rows
- List empty-state padding: name chromeLines constant
- Fix double buildDetailLines() call in detail scroll clamping
2026-05-04 14:12:15 +01:00
Claudio Ortolina 93ac86f748 fix(errors): LIKE wildcard escaping, memory-efficient counts, context tests
- Escape LIKE wildcards (% and _) in search queries using fragment ESCAPE
  to prevent accidental pattern expansion and potential DoS vectors
- Use Repo.aggregate for occurrence_count instead of loading all
  occurrences into memory in get_error/1
- Use Repo.aggregate(:min, :inserted_at) for first_occurrence_at instead
  of fragile List.last/1 that depends on query ordering
- Add MusicLibrary.ErrorsTest with 15 tests covering list_errors/1
  (default, status/muted/search filters, wildcard escaping, pagination,
  empty results) and get_error/1 (with/without occurrences, not_found)
2026-05-04 14:11:46 +01:00
Claudio Ortolina 26a9469b3f ML-164: implementation 2026-05-04 13:47:34 +01:00
Claudio Ortolina 904f540031 ML-163: implementation 2026-05-04 13:25:08 +01:00
Claudio Ortolina 51bd24d5b4 ML-162: enable /api/v1/errors endpoint 2026-05-04 13:14:40 +01:00