Commit Graph

3493 Commits

Author SHA1 Message Date
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
Claudio Ortolina 213ca31a42 Fix parent task IDs 2026-05-04 11:04:47 +01:00
Claudio Ortolina 2bf943a206 ML-163: plan 2026-05-04 10:33:08 +01:00
Claudio Ortolina 85275cb88b Ml-162: plan 2026-05-04 10:13:09 +01:00
Claudio Ortolina 7b7309b38f Add template to work on task implementation 2026-05-04 09:46:09 +01:00
Claudio Ortolina 3d7e076906 Streamline backlog task tags 2026-05-04 09:20:11 +01:00
Claudio Ortolina 50b9023707 ML-161 (and subtasks): research and plan 2026-05-04 09:17:16 +01:00
Claudio Ortolina 4f167c4f8f Use dedicated token for pi logs access 2026-05-04 08:42:53 +01:00
Claudio Ortolina 218ddca62d ML-160: enable llm access to production logs 2026-05-04 08:36:00 +01:00
Claudio Ortolina 5073e681d2 Rename backlog documents 2026-05-04 07:56:21 +01:00
Claudio Ortolina 3f2f03849a ML-160: research and plan 2026-05-04 07:52:29 +01:00
Claudio Ortolina e57f9eddfb Update backlog.md to 1.45.0 2026-05-04 07:21:48 +01:00
Claudio Ortolina 51390974a8 ML-159: add cursor and visual mode to log browser 2026-05-03 22:34:50 +01:00
Claudio Ortolina 3512f812ba ML-159: plan review 2026-05-03 22:21:48 +01:00
Claudio Ortolina cb07e70d36 ML-159: research and plan 2026-05-03 22:14:49 +01:00
Claudio Ortolina 010c89774a ML-159: cancelled as not fit for purpose 2026-05-03 20:47:01 +01:00
Claudio Ortolina ef33287002 Remove tap report from tangled pipeline 2026-05-03 17:50:20 +01:00
Claudio Ortolina ebd19bf50b EXP: setup a tangled pipeline 2026-05-03 17:49:09 +01:00
Claudio Ortolina 5981970039 ML-157: implementation and configuration 2026-05-03 16:33:23 +01:00
Claudio Ortolina a6ef5996ed Backlog cleanup 2026-05-03 15:40:20 +01:00
Claudio Ortolina b7666168dc ML-158: plan review 2026-05-03 15:39:19 +01:00
Claudio Ortolina 4e0177c69d Offer to review plan at the end of task creation 2026-05-03 15:30:14 +01:00
Claudio Ortolina 29bedcd028 ML-158: task research and plan 2026-05-03 15:28:02 +01:00
Claudio Ortolina 9fda537bf9 ML-157: iterate on plan 2026-05-03 14:59:14 +01:00
Claudio Ortolina 84012cbd1c Update to error_tracker 0.9
Includes amendments resulting from new events, and proper handling of
the muted attribute
2026-05-03 14:46:40 +01:00
Claudio Ortolina a8eb4fe0b5 ML-157: task research and plan 2026-05-03 14:45:22 +01:00
Claudio Ortolina fd90a6bfa6 Add pi extension to get production logs 2026-05-03 09:21:25 +01:00
Claudio Ortolina db7e50d68b Move flash messages to the left
As the application makes heavy use of right-hand sheets, flash messages
are often lost.
2026-05-03 08:52:26 +01:00
Claudio Ortolina 3e74577a3a Add production infra critical rule 2026-05-03 08:00:09 +01:00
Claudio Ortolina 42ca81b940 Add prompts for backlog-driven development 2026-05-02 20:51:59 +01:00
Claudio Ortolina b396dbe037 ML-156: plan revisions 2026-05-02 19:14:25 +01:00
Claudio Ortolina dac946bbd6 ML-156: initial research 2026-05-02 17:17:11 +01:00
Claudio Ortolina 2de9c5e705 Add guidance about working with Backlog.md tasks 2026-05-02 16:54:54 +01:00