diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index 3d8473b2..653b1702 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -345,7 +345,7 @@ Plans: **Depends on:** Independent of Phases 1–12 for its UI and content work. Its security model must not contradict Phase 10 (Key-Material Hardening) — coordinate rather than widen. AIUI's own source lives in a **separate repository** (`git.tx1138.com/lfg2025/AIUI`, branch `development`, cloned at `~/Projects/AIUI`), so this phase spans two repos and needs push access to both. -**Plans:** 4/15 plans executed +**Plans:** 8/15 plans executed Plans: @@ -357,18 +357,18 @@ Plans: **Wave 2** -- [ ] 13-04-PLAN.md — Music library: one-way entity-model decision + lofty legitimacy gate + tag extraction (AIUI-03) -- [ ] 13-05-PLAN.md — Curated tool registry, D-09 authority ceiling, D-16 default-closed grants, conversational settings (AIUI-01/02) +- [x] 13-04-PLAN.md — Music library: one-way entity-model decision + lofty legitimacy gate + tag extraction (AIUI-03) +- [x] 13-05-PLAN.md — Curated tool registry, D-09 authority ceiling, D-16 default-closed grants, conversational settings (AIUI-01/02) - [x] 13-06-PLAN.md — Content surfaces: ContentItem → Film/Song/Podcast adapter, AIUI grids fed from Archy (AIUI-03) **Wave 3** -- [ ] 13-07-PLAN.md — Music index + music.* RPCs + freshness (AIUI-03) +- [x] 13-07-PLAN.md — Music index + music.* RPCs + freshness (AIUI-03) - [ ] 13-08-PLAN.md — D-11 confirm gate: node-authored, nonce-bound, rendered in trusted chrome (AIUI-01/04) **Wave 4** -- [ ] 13-09-PLAN.md — AIUI delivery: enforced build, pinned commit, live-asset verify, iframe sandbox mechanism (AIUI-04/05) +- [x] 13-09-PLAN.md — AIUI delivery: enforced build, pinned commit, live-asset verify, iframe sandbox mechanism (AIUI-04/05) - [ ] 13-10-PLAN.md — D-04 chain: Ollama tool-calling + D-08 node-side history (AIUI-01) - [ ] 13-11-PLAN.md — SongGrid lit from the real library + the m4a/aac/opus/wma share-mime fix (AIUI-03) diff --git a/.planning/STATE.md b/.planning/STATE.md index dedbb5f6..6372dc95 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -5,15 +5,15 @@ milestone_name: milestone current_phase: 13 current_phase_name: aiui-functional-conversational-node-control-and-content-surf status: executing -stopped_at: "13-04 COMPLETE 2026-08-04 (session broke on a pipe mid-Task-3; recovered work was checkpoint-committed VERBATIM as be8f24b4, then completed on top — no history rewrite). All 3 tasks done: Task 1 operator decision bca4660a (13-MUSIC-MODEL.md: hybrid-identity, derived-albums, index-format-json, sources=both, MUSIC_SCHEMA_VERSION=1); Task 2 operator-approved lofty 0.24.0 legitimacy gate 61564440; Task 3 tag extraction be8f24b4+4b577493 (7/7 music:: tests green; deviation: MP3 fixture frame length 210→209 — lofty truncates the division BEFORE adding padding; fixture-only fix verified against lofty's vendored source). NEXT: waves 3+ per ROADMAP/plan dependencies (13-04 was the last wave-2 plan). Window 20 still open: repo/ISO nginx config lacks /api/peer-content/ — fresh installs silently lose peer media streaming; decide add-or-retire. Still open for operator: merge chore/aiui-monorepo-migration to main before next OTA; Claude key on archy-x250-dev3; window 18 (nginx self-heal reverting /etc/nginx deploys) at next OTA. Stale-but-harmless: p13-01/p13-02 worktrees (merged, safe to remove); stale phase-09 HANDOFF.json in .planning/ predates this and is NOT a resume source. Prior 13-09 detail preserved in git history of this file (bf9b4e6a)." -last_updated: "2026-08-04T10:50:00.000Z" +stopped_at: "13-07 COMPLETE 2026-08-04: music index (49687f7e) + music.* RPC surface (d3b0ed8a) + summary (17da7a72), 23/23 music:: tests green, build 0. Next: 13-08." +last_updated: "2026-08-04T15:21:11.132Z" last_activity: 2026-08-04 -last_activity_desc: "13-04 complete — D-13 music model decided, lofty gated in, tag extraction 7/7 green. Next: waves 3+" +last_activity_desc: 13-04 complete (D-13 music model, lofty gate, tag extraction 7/7 green) progress: total_phases: 13 completed_phases: 2 total_plans: 60 - completed_plans: 45 + completed_plans: 46 percent: 15 --- @@ -29,11 +29,11 @@ See: .planning/PROJECT.md (updated 2026-07-29) ## Current Position Phase: 13 (aiui-functional-conversational-node-control-and-content-surf) — EXECUTING -Plan: 7 of 15 complete (13-01, 13-02, 13-03, 13-04, 13-05, 13-06, 13-09) — next: waves 3+ -Status: Executing Phase 13 +Plan: 8 of 15 complete (13-01, 13-02, 13-03, 13-04, 13-05, 13-06, 13-09) — next: waves 3+ +Status: Ready to execute Last activity: 2026-08-04 — 13-04 complete (D-13 music model, lofty gate, tag extraction 7/7 green) -Progress: [█████░░░░░] 54% +Progress: [████████░░] 77% ## Performance Metrics @@ -64,6 +64,7 @@ Progress: [█████░░░░░] 54% | Phase 02 P10 | 55min | 2 tasks | 3 files | | Phase 02 P11 | ~150min | 3 tasks | 8 files | | Phase 01 P01 | n/a-continuation | 2 tasks | 1 files | +| Phase 13 P07 | ~3h45m | 2 tasks | 5 files | ## Accumulated Context @@ -129,6 +130,7 @@ Decisions are logged in PROJECT.md (10 locked ADRs in the `` block + - [Phase 2, gap closure 02-11]: openwrt-gateway unmeasurable in the final re-measure (Chromium "Target crashed" cascading from an unrelated surface, cloud-folder, earlier in the same harness run) — recorded as not-measurable, not written in as data. Separately confirmed the prior baseline/after/remeasure numbers were measuring a real, substantive disconnected-state UI (OpenWrtGateway.vue's h1 is unconditional; a "No router configured" RPC error deterministically renders a real Connect-to-Router form, not a blank/error page) — the six-surface regression count is not retracted, but the numbers reflect one specific code branch (no OpenWrt device has ever been connected to archi-dev-box) - [Phase ?]: 01-01: record_peer_transport and update_node routed through FEDERATION_STORE_LOCK via *_inner; tombstone-write-failure test added; full-suite verify blocked by a concurrent agent's uncommitted install.rs edit (unrelated file, not fixed per scope boundary) - [Phase ?]: UIFIX-02: connected-nodes card height tracks row sibling via xl:flex-1 xl:basis-0 (zero-basis flex-grow) instead of flex-auto, with an xl:min-h-[40rem] floor for a short sibling (discovery disabled), tuned from an initial 20rem guess per Dorian's live feedback +- [Phase ?]: 13-07: media_roots = filebrowser/Music + purchased-content (both D-13 sources as local roots); music.reindex incremental:true wires refresh_incremental to a production caller; one comparator everywhere with TrackId (source,path) tiebreak ### Pending Todos @@ -206,9 +208,9 @@ The 5x lifecycle gate was NOT run. ## Session Continuity -Last session: 2026-08-03T12:57:50.980Z -Stopped at: Phase 13 context gathered -Resume file: .planning/phases/13-aiui-functional-conversational-node-control-and-content-surf/13-CONTEXT.md +Last session: 2026-08-04T15:21:11.075Z +Stopped at: 13-07 COMPLETE 2026-08-04: music index (49687f7e) + music.* RPC surface (d3b0ed8a) + summary (17da7a72), 23/23 music:: tests green, build 0. Next: 13-08. +Resume file: None Open on this thread (all recorded as broken windows, none blocking):