Commit Graph

20 Commits

Author SHA1 Message Date
ce5c8db5bc US02-05: Build the Static Application Shell
Add the reusable browser shell primitives Phase B views build on:

- store.js: observable store (get/set/subscribe)
- events.js: job activity adapter — SSE preferred, polling fallback,
  sharing the event `seq` as cursor so a transport switch drops nothing
- api.js: cancellable() (AbortController) + job endpoints; aborted
  requests reject with code "cancelled"

Make the SSE stream generically consumable: emit default `message`
events with the type in the JSON payload instead of `event: <type>`, so
a browser EventSource receives the open-ended type set (state:*,
claimed, …) via onmessage without enumerating it. The `event: done`
sentinel and resumable `id:` cursors are unchanged.

Tests: frontend/js/tests/ in-browser unit suite (api errors +
cancellation, store transitions, routing, SSE→polling fallback) served
over the app's static mount and driven by tests/e2e/test_frontend_shell.py,
which also asserts asset loading, deep-link + reload restore, JSON-only
/api/v1, and a clean console/network. Reuses the installed playwright —
no JS toolchain added.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-06 15:47:52 +02:00
de20e6c8ce US02-04: Expose Job APIs and Activity Events (#57) 2026-07-16 20:15:57 +02:00
d054dcbe61 US02-03: Execute Jobs with Leases, Locks, and Recovery (#56) 2026-07-15 23:13:25 +02:00
0ebacfa544 US02-02: Persist and Coordinate Durable Jobs (#55) 2026-07-15 22:47:13 +02:00
22558a4efa US02-01: Extract Safety and Existing Web UI Donors (#54) 2026-07-15 22:37:47 +02:00
19d4ce3785 US01-07: Automate Phase A End-to-End Acceptance (#53) 2026-07-15 22:15:30 +02:00
3d5550b07f docs: clarify Kanban board limitation and label-as-board workflow (#52) 2026-07-15 22:04:28 +02:00
4b4c05339e US01-06: Review Inventory and Duplicates in the Browser (#51) 2026-07-15 21:44:48 +02:00
98e9cb2988 US01-05: Generate and Serve Managed Thumbnails (#50) 2026-07-15 21:27:40 +02:00
691d5a5651 US01-04: Detect and Decide Duplicates (#49) 2026-07-15 17:14:24 +02:00
c25d45d8f7 US01-03: Discover and Reconcile Stable Assets (#48) 2026-07-15 16:47:09 +02:00
a723b63d55 US01-02: Establish Application and Database Foundation (#47) 2026-07-15 16:33:25 +02:00
ffafa308de US01-01 follow-up: replace donor characterization iteration with YAML ledger + full suite (#46) 2026-07-15 16:13:00 +02:00
eed7c33da4 Merge pull request 'US01-01: Inventory and Characterize Donor Code' (#45) from us/US01-01-inventory-and-characterize-donor-code into main
Reviewed-on: #45
2026-07-13 16:50:42 +02:00
a0e1752ff1 US01-01: Inventory and Characterize Donor Code 2026-07-13 16:42:51 +02:00
43ffde71da chore: make work-item a reusable subproject 2026-07-13 16:21:28 +02:00
e35e5040a3 Require Python 3.12 for workflow automation 2026-07-13 14:07:14 +02:00
eabf2273a7 Use a supported Python for workflow tests 2026-07-13 14:06:13 +02:00
084a0b5058 Harden work-item failure recovery 2026-07-13 13:55:37 +02:00
80447092e9 Bootstrap project and safe work-item workflow 2026-07-13 13:51:41 +02:00