Commit Graph

3287 Commits

Author SHA1 Message Date
Claudio Ortolina ebb394a6b7 Add instructions for presto in AGENTS.md 2026-05-10 20:00:32 +01:00
Claudio Ortolina 56fb7e590d [presto] rename records_on_the_day.py to main.py 2026-05-10 19:54:27 +01:00
Claudio Ortolina 4babb29d73 ML-176: implementation complete 2026-05-10 15:59:49 +01:00
Claudio Ortolina d4242b6e93 ML-176.2: add presto splash, search 2026-05-10 15:59:37 +01:00
Claudio Ortolina 8475126a80 ML-176.2: plan 2026-05-10 15:20:22 +01:00
Claudio Ortolina 4edf2f0cfe ML-176.2: research and implementation plan 2026-05-10 15:07:06 +01:00
Claudio Ortolina a3bc6d7cf3 ML-176.1: support search in collection api controller 2026-05-10 14:52:01 +01:00
Claudio Ortolina 12747738af ML-176.1: plan 2026-05-10 14:44:19 +01:00
Claudio Ortolina cc0d97b160 ML-176: requirements 2026-05-10 14:39:03 +01:00
Claudio Ortolina d4b30a93dc [presto] make header smaller, more room for the rest 2026-05-10 08:20:05 +01:00
Claudio Ortolina 0ad3c9315b draft-1: research 2026-05-10 08:01:06 +01:00
Claudio Ortolina ab4548b748 ML-175: research and plan 2026-05-10 07:51:18 +01:00
Claudio Ortolina d00422f587 Update tailwind reference in package-lock 2026-05-09 23:02:39 +01:00
Claudio Ortolina 4a40445100 Update dependencies
mix:
  igniter 0.7.9 => 0.8.0
2026-05-09 22:53:31 +01:00
Claudio Ortolina b557fe3eea Fix record picker search results clearing on add
The update/2 callback unconditionally reset the query and results to empty
on every parent re-render. Changed to assign_new/3 so search state persists
when the parent updates the record set after adding a record.
2026-05-09 20:11:51 +01:00
Claudio Ortolina 5cbd988b46 Have pi format most markdown files on save
Avoiding skills as they can contain generated blocks
2026-05-09 19:11:13 +01:00
Claudio Ortolina a0539cf2ea ML-174: research and plan 2026-05-09 19:06:29 +01:00
Claudio Ortolina a425327162 Remove unnecessary blocked command 2026-05-09 19:01:28 +01:00
Claudio Ortolina 6f865a7b4d ML-173: replace aws-sdk with aws4 + built-in fetch
Replace @aws-sdk/client-s3 (~150 transitive deps, ~14MB) with aws4
(0 transitive deps, ~40KB) and Node.js built-in fetch+crypto for
S3 ListObjectsV2 against Hetzner Object Storage.

- New s3-client.ts: SigV4 signing via aws4, regex-based XML parsing
  with namespace tolerance, pagination support, 5 error categories
- 29 unit tests (node:test, zero-dependency) covering signing,
  parsing, entities, missing fields, pagination, abort, errors
- Settlement guard for double done(null) on abort
- XML entity decoding and regex metacharacter escaping
- Dependency surface: 150 packages → 1 (aws4, single-file, auditable)
2026-05-09 10:46:07 +01:00
Claudio Ortolina d21cbb306c ML-173: research and plan 2026-05-09 09:49:38 +01:00
Claudio Ortolina ce014db1d5 ML-168: account for counts and pagination shift 2026-05-09 07:17:36 +01:00
Claudio Ortolina 17f2635fa6 ML-172: add research task 2026-05-09 06:52:10 +01:00
Claudio Ortolina f8780f3582 ML-171: research and plan 2026-05-09 06:29:38 +01:00
Claudio Ortolina 2c0e0e3fae Update dependencies
mix:
  db_connection 2.10.0 => 2.10.1
2026-05-09 06:16:21 +01:00
Claudio Ortolina 5162b992cd Add error ID display and copy shortcuts to prod-errors TUI
Show error ID after status label in list view. Add 'c' shortcut to copy error ID from list and full stacktrace from detail view. Replace Enter-to-copy-line with 'c' copy stacktrace in detail. Show error reason in detail header instead of kind.
2026-05-08 22:43:02 +01:00
Claudio Ortolina b7b2324d99 Extend outdated/update scripts for s3-browser 2026-05-08 22:28:04 +01:00
Claudio Ortolina ee97d98cc8 Update dependencies
mix:
  decimal 3.0.0 => 3.1.0
  mint 1.7.1 => 1.8.0
2026-05-08 22:25:45 +01:00
Claudio Ortolina aa95e99377 Update tailwind
tailwind:
  tailwindcss 4.2.4 => 4.3.0
2026-05-08 22:23:45 +01:00
Claudio Ortolina d3459a28f1 Update npm dependencies
npm:
  @aws-sdk/client-s3 3.1041.0 => 3.1045.0
  @smithy/config-resolver 4.4.17 => 4.5.0
  @smithy/core 3.23.17 => 3.24.0
  @smithy/credential-provider-imds 4.2.14 => 4.3.0
  @smithy/eventstream-serde-browser 4.2.14 => 4.3.0
  @smithy/eventstream-serde-config-resolver 4.3.14 => 4.4.0
  @smithy/eventstream-serde-node 4.2.14 => 4.3.0
  @smithy/fetch-http-handler 5.3.17 => 5.4.0
  @smithy/hash-blob-browser 4.2.15 => 4.3.0
  @smithy/hash-node 4.2.14 => 4.3.0
  @smithy/hash-stream-node 4.2.14 => 4.3.0
  @smithy/invalid-dependency 4.2.14 => 4.3.0
  @smithy/is-array-buffer 4.2.2 => 4.3.0
  @smithy/md5-js 4.2.14 => 4.3.0
  @smithy/middleware-content-length 4.2.14 => 4.3.0
  @smithy/middleware-endpoint 4.4.32 => 4.5.0
  @smithy/middleware-retry 4.5.7 => 4.6.0
  @smithy/middleware-serde 4.2.20 => 4.3.0
  @smithy/middleware-stack 4.2.14 => 4.3.0
  @smithy/node-config-provider 4.3.14 => 4.4.0
  @smithy/node-http-handler 4.6.1 => 4.7.0
  @smithy/property-provider 4.2.14 => 4.3.0
  @smithy/protocol-http 5.3.14 => 5.4.0
  @smithy/shared-ini-file-loader 4.4.9 => 4.5.0
  @smithy/signature-v4 5.3.14 => 5.4.0
  @smithy/smithy-client 4.12.13 => 4.13.0
  @smithy/url-parser 4.2.14 => 4.3.0
  @smithy/util-base64 4.3.2 => 4.4.0
  @smithy/util-body-length-browser 4.2.2 => 4.3.0
  @smithy/util-body-length-node 4.2.3 => 4.3.0
  @smithy/util-config-provider 4.2.2 => 4.3.0
  @smithy/util-defaults-mode-browser 4.3.49 => 4.4.0
  @smithy/util-defaults-mode-node 4.2.54 => 4.3.0
  @smithy/util-endpoints 3.4.2 => 3.5.0
  @smithy/util-middleware 4.2.14 => 4.3.0
  @smithy/util-retry 4.3.6 => 4.4.0
  @smithy/util-stream 4.5.25 => 4.6.0
  @smithy/util-utf8 4.2.2 => 4.3.0
  @smithy/util-waiter 4.3.0 => 4.4.0
  fast-xml-builder 1.1.5 => 1.2.0
  strnum 2.2.3 => 2.3.0
  @smithy/chunked-blob-reader 5.2.2 => removed
  @smithy/chunked-blob-reader-native 4.2.3 => removed
  @smithy/eventstream-codec 4.2.14 => removed
  @smithy/querystring-builder 4.2.14 => removed
  @smithy/querystring-parser 4.2.14 => removed
  @smithy/service-error-classification 4.3.1 => removed
  @smithy/uuid 1.1.2 => removed
  xml-naming added 0.1.0
2026-05-08 18:19:43 +01:00
Claudio Ortolina af45205b3f Add dependabot npm config for s3-browser extension
The previous edit inserted the new npm ecosystem entry at the wrong
YAML indentation level, leaving /assets with an empty ignore list
and nesting the s3-browser entry incorrectly.

Fix: restore the live_toast ignore under /assets, and add
.pi/extensions/s3-browser as a proper top-level updates entry.
2026-05-08 18:16:37 +01:00
Claudio Ortolina 777eec46f8 Update architecture docs: PubSub starts before Oban 2026-05-08 18:02:34 +01:00
Claudio Ortolina 87310fd8ce ML-170: research and plan 2026-05-08 15:07:50 +01:00
Claudio Ortolina 0a16b72411 Instruct LLM to use flat paths for backlog documents 2026-05-08 15:06:25 +01:00
Claudio Ortolina be7a9d5990 Start PubSub before Oban to prevent registry errors
Phoenix.PubSub must be initialized (creating its internal Registry)
before Oban starts processing jobs. With one_for_one strategy,
children start sequentially; previously Oban was started first,
causing 'unknown registry: MusicLibrary.PubSub' errors when a
job called broadcast before PubSub was ready (error #3891).
2026-05-08 14:10:56 +01:00
Claudio Ortolina 2e0ead75c4 Update Presto color scheme to match main app zinc dark theme 2026-05-08 13:52:33 +01:00
Claudio Ortolina 1247b89892 ML-169: add subtasks 2026-05-08 10:57:06 +01:00
Claudio Ortolina 07d2e3fee3 ML-169: research and plan 2026-05-08 09:57:00 +01:00
Claudio Ortolina 231fdc3bad ML-168: format 2026-05-08 09:54:57 +01:00
Claudio Ortolina 7540ed3ffd Update npm dependencies
npm:
  backlog.md 1.45.0 => 1.45.1
2026-05-08 09:34:44 +01:00
Claudio Ortolina 7839683eb0 [presto] add emulator
Not working, but added so that we track updates
2026-05-08 07:41:03 +01:00
Claudio Ortolina 3876861f6f ML-168: research and plan 2026-05-08 07:04:20 +01:00
Claudio Ortolina ed6032bd15 Slow down shine animation, make it left to right only
Avoids dark edge at the bottom
2026-05-07 22:42:04 +01:00
Claudio Ortolina 621b35d824 Open universal search modal instantly via client-side JS
Replace phx-click server event with Fluxon.open_dialog for zero-latency
modal opening. The modal DOM is now always present (no :if conditional) so
it can be shown instantly; the server syncs state in the background.

Fix test selectors that now match the always-present modal form by scoping
to forms without phx-target (which the modal form always has).
2026-05-07 20:43:15 +01:00
Claudio Ortolina fa7a01b489 Update dependencies
decimal 2.3.0 => 3.0.0 (major)
2026-05-07 18:59:23 +01:00
Claudio Ortolina 10a24da49c Improve shine animations 2026-05-07 14:19:42 +01:00
Claudio Ortolina c6115f05f9 [presto] backlight fade in/out 2026-05-07 12:57:03 +01:00
Claudio Ortolina 829d0a2caa Update docs for Presto, PubSub, and Node.js 26
Add Presto companion display to architecture overview. Document collection API cover sizes (cover, thumb/480px, mini/150px, micro/40px). Update PubSub topic table and LiveView conventions for handle_params subscription management. Bump Node.js version from 25 to 26 in production infrastructure.
2026-05-07 10:57:23 +01:00
Claudio Ortolina 5f240fe573 Fix stale PubSub subscriptions on record navigation
Subscription management was only done in mount/3, meaning
navigating to a different record via handle_params/3 left the
old subscription active. A background update for the old record
would then overwrite the currently displayed record.

Fix: manage subscriptions in handle_params/3 (unsubscribe old,
subscribe new) via shared RecordActions.manage_subscription/2,
and guard handle_info({:update,...}) against mismatched IDs.
2026-05-07 10:14:10 +01:00
Claudio Ortolina 365195ff75 Backlog cleanup 2026-05-07 10:01:47 +01:00
Claudio Ortolina ed9556a479 [presto] update clock on wake up 2026-05-07 08:24:58 +01:00