Claudio Ortolina
5ee1d0b82a
ML-188: race condition in background update (plan)
2026-05-19 10:03:58 +01:00
Claudio Ortolina
70dfce1346
Move audit tasks to done (should have done that earlier)
2026-05-19 09:51:14 +01:00
Claudio Ortolina
0881971635
Backlog cleanup
2026-05-19 09:48:55 +01:00
Claudio Ortolina
54b682a663
ML-190: add same-record reconnect optimization task
...
From audit doc-25 (Phase 2), Recommendation #2 .
2026-05-19 09:46:31 +01:00
Claudio Ortolina
b858c27f52
ML-189: add Release component tag type-safety task
...
From audit doc-24 (Phase 1), Recommendation #1 .
2026-05-19 09:46:22 +01:00
Claudio Ortolina
8baaa7df27
ML-188: add form edit + background update race fix task
...
From audit doc-26 (Phase 3), Recommendation #1 .
2026-05-19 09:46:11 +01:00
Claudio Ortolina
762b64659b
ML-169: performed all audits
2026-05-19 08:47:08 +01:00
Claudio Ortolina
8de5d88c14
ML-169.2: performed performance audit
2026-05-19 08:45:58 +01:00
Claudio Ortolina
2a108660ae
ML-169.1: performed concurrent state change safety audit
2026-05-19 08:33:55 +01:00
Claudio Ortolina
2d4b82e7bb
ML-169.3: performed pubsub audit
2026-05-19 08:20:11 +01:00
Claudio Ortolina
a2bb98679c
ML-168.4: perform async messages audit
2026-05-19 07:38:37 +01:00
Claudio Ortolina
af62cf38a6
ML-187: done
2026-05-18 16:11:57 +01:00
Claudio Ortolina
795e511fc1
ML-187: smarter precommit hook (plan)
2026-05-18 15:55:15 +01:00
Claudio Ortolina
122c07836b
ML-182.5: migrate blocked LiveView tests
...
Replace direct LiveView PID and isolated component test patterns with PhoenixTest-backed page flows while keeping narrow unwrap bridges where PhoenixTest cannot express the component interaction.
Precommit: mise run dev:precommit
2026-05-17 21:24:29 +01:00
Claudio Ortolina
aab16b2c66
ML-186: improve presto redraw performance with partial updates
2026-05-16 21:29:02 +01:00
Claudio Ortolina
d61dd6c7b8
[presto] Update tests/references to medium cover size
2026-05-16 21:28:09 +01:00
Claudio Ortolina
9f5a26198f
ML-182.4: convert tests to phoenix_test
2026-05-16 16:30:42 +01:00
Claudio Ortolina
07d65fe78f
ML-182.3: finish wave-3 of conversion LiveViewTest to PhoenixTest
2026-05-16 15:23:53 +01:00
Claudio Ortolina
3a7a89002a
ML-185.2: use API-sized Presto covers
2026-05-15 22:56:22 +01:00
Claudio Ortolina
b4710e10c8
ML-185.1: expose named cover sizes in collection API
2026-05-15 22:49:06 +01:00
Claudio Ortolina
f1b33fdc5f
ML-185: simplify presto artwork handling (requirements)
2026-05-15 22:41:17 +01:00
Claudio Ortolina
6a3e9695db
ML-184: add Presto smoke test harness
...
Add a headless smoke-test harness for the Presto microPython app using
pimoroni-emulator mock modules. A PRESTO_TEST_MODE=1 guard prevents
main() from running at import time so draw functions can be called
directly from tests.
- presto/main.py: wrap main() with PRESTO_TEST_MODE guard
- presto/tests/: conftest with emulator fixtures, 7 smoke tests
- presto/mise.toml: add [tasks.test]
- presto/README.md, presto/AGENTS.md: add Testing section
- .gitignore: exclude test __pycache__, pytest_cache, fixture pngs
2026-05-15 10:53:08 +01:00
Claudio Ortolina
2ec19f3a88
ML-184: presto testing harness (plan)
2026-05-15 09:54:18 +01:00
Claudio Ortolina
7338825606
ML-183: scale Presto full-res layout
2026-05-15 08:22:27 +01:00
Claudio Ortolina
8391cf275a
ML-180: remove backup download feature
...
Delete ArchiveController, its routes, the maintenance UI backup
button, and the test file. Management scripts and Litestream
supersede this functionality.
2026-05-15 07:13:33 +01:00
Claudio Ortolina
74b4e2524f
ML-182.3; update more tests and findings
2026-05-15 07:04:04 +01:00
Claudio Ortolina
9eda49ed46
ML-182.3: migrate record_set/show tests to PhoenixTest
2026-05-15 06:47:25 +01:00
Claudio Ortolina
9b7ed2ae8b
ML-182.6: wave 6 conversion
2026-05-14 23:25:15 +01:00
Claudio Ortolina
f20a7af5d7
ML-182.5: wave 5 conversion
2026-05-14 23:25:05 +01:00
Claudio Ortolina
3cb7509a4b
ML-182.4: wave 4 conversion
2026-05-14 23:24:45 +01:00
Claudio Ortolina
2237c7db20
ML-182.3: partial progress in conversion
2026-05-14 23:23:15 +01:00
Claudio Ortolina
dda700ad96
ML-182: convert 4 test files to PhoenixTest only
...
Waves 1-2: scrobble_live/index, scrobbled_tracks_live/index, release_group_show, release_show. Dropped unwrap/2 bridges and page_title/1 usage. Search form tests use visit with query params. page_title tests use assert_has("title", ...).
2026-05-14 23:22:02 +01:00
Claudio Ortolina
8843f0ad4f
ML-182: migration to phoenix_test (plan)
2026-05-14 22:42:42 +01:00
Claudio Ortolina
f108e6f062
ML-174: add empty action to record set dropdown menu
...
Add RecordSets.empty_record_set/1 that bulk-deletes all items in a set via
a single DELETE query and returns the reloaded empty set. Add Empty button
with confirmation prompt to both index and show view dropdowns.
2026-05-14 17:15:06 +01:00
Claudio Ortolina
a59dd22a18
ML-168: broadcast index_changed event after background import
...
Import workers now broadcast :records_index_changed on
"records:index_changed" after successful import via
Records.broadcast_index_changed/0.
CollectionLive.Index and WishlistLive.Index subscribe to the
topic in mount/3 and reload their record streams on receipt,
with a live_action guard to skip reloads when the grid is
hidden behind a modal (:import, :barcode_scan).
IndexActions.handle_index_changed/1 refreshes total_entries
before reloading to keep the pagination bar accurate.
2026-05-14 17:15:06 +01:00
Claudio Ortolina
c86ce9d485
Ml-174: add labels
2026-05-13 21:05:34 +01:00
Claudio Ortolina
9c67591c6d
ML-181: add labels
2026-05-13 20:37:26 +01:00
Claudio Ortolina
344d88127d
ML-181: hardening asset routes (plan)
2026-05-13 20:28:35 +01:00
Claudio Ortolina
8ece3ba891
Backlog cleanup
2026-05-12 11:30:59 +01:00
Claudio Ortolina
f41c8f3bcd
ML-180: remove backup function (plan)
2026-05-12 11:28:22 +01:00
Claudio Ortolina
a3ee651b22
ML-170: ready to be worked on
2026-05-12 11:03:55 +01:00
Claudio Ortolina
315e630e28
ML-174: remove double heading
2026-05-12 07:50:10 +01:00
Claudio Ortolina
0aa51e38e8
ML-175: mark task done
2026-05-11 17:44:26 +01:00
Claudio Ortolina
a88c704fe5
ML-175: parse bash commands structurally via unbash
...
Replace regex-based command blocking with structural AST parsing
using unbash (zero-dependency TypeScript bash parser). The walker
collects command names only from executable positions (simple
commands, pipelines, subshells, command substitutions, control-flow
bodies), excluding arguments, comments, and quoted strings.
- Convert to directory-style extension with pinned unbash@3.0.0
- Add AST walker (ast.ts) covering 15 shell construct types
- Update blocked_commands to plain names instead of regexes
- Keep regex fallback for parse failures (degradation path)
- Path-based blocking unchanged for non-bash tools
- 41 tests cover blocked/allowed cases including false positives
2026-05-11 17:42:48 +01:00
Claudio Ortolina
5b4be08e5b
Update dependencies
...
ex_ast 0.11.0 => 0.11.1
oban_web 2.12.3 => 2.12.4
The update closes ML-171
2026-05-11 14:23:13 +01:00
Claudio Ortolina
5f86ca1b86
ML-171: track upstream fix
2026-05-11 14:18:29 +01:00
Claudio Ortolina
3a825f7a90
ML-170: revised plan
2026-05-11 09:27:53 +01:00
Claudio Ortolina
21199de419
Cleanup labels and assignees
2026-05-11 07:49:40 +01:00
Claudio Ortolina
2f94657ade
ML-179.2: track refactor task
2026-05-11 07:23:55 +01:00
Claudio Ortolina
3b599f62a3
ML-179.1: track refactor task
2026-05-11 07:23:19 +01:00