docs: resume artifact — session 2 state (banner fix in flight, ISO cut)

This commit is contained in:
archipelago
2026-08-07 11:49:46 -04:00
parent f15e2b5025
commit 5e71f256e4
+64
View File
@@ -0,0 +1,64 @@
# RESUME — 2026-08-07 (session 2, evening). Banner fix, ISO, content truth.
**Read first if a newer session needs this branch's state.** Supersedes
`RESUME-2026-08-07-aiui-surfaces.md` for what shipped TODAY; that doc's traps
list and deploy loop still apply verbatim.
Branch `gsd/phase-13-aiui-functional-conversational-node-control-and-content-surf`.
## Shipped this session (all committed + pushed to gitea-ai, deployed to archi-dev-box)
| Commit | What |
|---|---|
| `c25fd8b6` | Owner never pays for own files (`serve_content` owner_session) + purchased items serve from local cache w/ Range + own never locked + per-onion peers/purchased normalization |
| `3f22e437` | strict-TS fix for the per-onion grouping (vue-tsc gate; vitest strips types) |
| `1ac08a3e` | Prompt: recommendations check catalogue/peers FIRST + `[[film_ext:…]]` etc. tag vocabulary for knowledge picks; bans the "would you like me to check?" stall |
| `a91bc55d` | W1.1 shapes: IndeeHub films carry `video/mp4` mime hint; `apps_list` wraps `{items:[…]}` at the tool boundary |
| `7d57e2c3` | Panel: per-bucket `archySupplied` replaces the global latch — recommendation previews render in empty buckets, node truth wins filled buckets, 'Nothing found' sticky |
| `c2e71bc7` | W1.2 playback: `usePlayer` plays node `sources[]` first (Wavlake fallback); `FilmDetail` prefers node sources over YouTube |
| `f15e2b50` | First banner fix attempt: `[[needs:<id>]]` marker — **SUPERSEDED, see below** |
## Live-verified this session (browser/RPC on archi-dev-box)
- Own paid items: `GET /content/<id>` with session cookie → **200** (were 402).
- "recommend me 10 scifi films" → Films tab + 10 preview cards ("10 Films" heading, "not in library" badges).
- Own shared content turn → `locked: 0`, playable `/content/` URLs.
- Cmd+K → "Talk to AIUI about it" → query lands in the AIUI composer (PREFILL-OK).
- Grants persist across refresh (node-side grants identical before/after reload).
## IN FLIGHT when this was written
**#6 banner** (ungranted-permission Settings offer). The 9abc1623 banner never fired
(D-16 hides ungranted tools → model never calls → `refused_categories` always empty).
The marker fix (`f15e2b50`) also failed live: the local model wrote a workaround
narrative, never emitted `[[needs:media]]`. **Final fix (uncommitted at writing):**
disabled tools are LISTED in the prompt under a DISABLED section and stay in the
schema — the model's call hits the execution gate, which records the refusal →
banner fires deterministically, model-independent. The prompt split is UX shaping;
the boundary remains the server-side grant re-check. Tests updated
(`ungranted_tool_only_ever_in_disabled_section`, `disabled_tools_are_listed_as_callable_but_refused`).
**Next steps: tests green → commit → rebuild release binary → deploy → re-run
`neode-ui/verify-banner.tmp.mjs` (revoke media → ask for content → banner → button
lands on #ai-data-access → restore grant).**
## ISO
`image-recipe/results/archipelago-installer-1.7.125-alpha-unbundled-x86_64_RC1.iso`
(2.6 GB) + `.sha256`, built 2026-08-07 ~11:16 via `UNBUNDLED=1 bash
image-recipe/build-debian-iso.sh`. First run wedged on transient deb.debian.org
download failures; the retry used the cached rootfs. **Frontend verification inside
the ISO is still owed** (RESUME rule): extract `web-ui/` from the ISO and compare
content-hashed asset filenames against `web/dist/neode-ui/` and
`aiui/packages/app/dist/` — both were built today (08:45 / 09:21) and are what the
builder copies in. NOTE: the ISO predates the DISABLED-section fix; if the demo
needs the banner to fire, re-cut after that binary lands.
## Verification drivers (uncommitted, in `neode-ui/`)
- `shot.tmp.mjs` — original chat probe (bucket counts via chat:response).
- `verify-owner.tmp.mjs` — own-content locked-count probe.
- `verify-reco.tmp.mjs` — the "recommend me 10 scifi films" turn.
- `verify-banner.tmp.mjs` — revoke media → chat → `.chat-permission-offer` → click → settings.
- `verify-cmdk.tmp.mjs` — spotlight → AIUI prefill.
- `verify-grants.tmp.mjs` — grants across reload.
All use `https://192.168.63.240`, password `ThisIsWeb54321@`, and run from `neode-ui/`.