docs: #55 Phase B shipped — codex deletion via the CLI's own codex delete
docs: #55 session deletion — design + doc-map row
docs: #53 shipped — 17 slices, quartet green, AGENTS rule 7
docs: #53 service layer design; #52 re-settled on Plan B (principal-parameter services; ALS + internal-credential records kept as history)
docs: #51 + #52 designs — provider model registry, platform assistant
docs: #46 — dsh ground truth moves to 0.2.0-rc.2 (W7/W7.1/T1 addenda) + version-gate design
- design-phase-9-w7-native-sessions.md — #46 addendum: the session log is
generation-versioned (current v4 `session.v4.jsonl.zstd`), v3+ rows are
one durable event each (packed rows and `assistant/chunk` gone, flat
tool results, `aborted`, usage on the settlement), and the NO-back-compat
decision (pre-v4 reads as absent — safe because the gate refuses the
clients that write it).
- design-phase-9-w7.1-dsh-event-tap.md — tap v2 addendum: the
`agent/assistant-stream` frame arm (plugin second subscription, listener
`frame` lines, mapper attemptId → turn:step for the settlement dedup).
- design-dsh-client-version-gate.md — new: per-target `minVersion` floor +
`checkAcpVersion` probe, enforced at channel open (before any spawn) and
at prewarm; upgrade hint; overrides ungated; verification inventory.
- design-phase-8-t1-deepseek.md — status note: install/scanner surfaces
source-diffed to 0.2.0-rc.2 and unchanged; the ACP row carries the floor.
- doc-map.md — index the gate doc; refresh the T1 line.
design-cli-tui.md — issue #39 shipped: hnx tui (process model, screen, token accounting, zero-dep renderer, verification)
docs: admin scope tightening (#36), version surfacing (#37), client logbook (#38)
wiki: the design system page gains the shell's page API and the five page recipes (#23)
Everything a new page needs was either punted to the machine-local record or
only discoverable by reading code:
- "How a page plugs into the shell": a destination is declared once in
`nav.ts` (router, spine, plate, breadcrumb, navstrip and drawer all read that
table), identity/actions/margin go through `usePageTitle` + `PageSlot`, the
shell owns scrolling unless the route says `layout: 'panes'`, the frame is
full width, and a new route also joins `scripts/ui-snap.mjs`'s route list.
- "Page recipes": the five archetypes (list, resource-kind, detail, chat,
overview) stated as rules — nameplate states facts not the title, filters in
the URL, cells are devices and "no value" is an em dash, states are rows,
drill-down is a row or a page, the phone pins the action column; kind pages
keep their own columns/editor (hooks structured, not a JSON box); detail puts
identity in the panel header and tabs on the panel's own edge; chat's rail /
block grammar / bottom-right composer; the topology degrades honestly.
The section that used to punt both now points at the per-module surfaces
instead, and doc-map's row for the page says what it covers.
wiki: the console design system gets its durable page; skin doc completed (#23)
The design system's rules only existed in the machine-local working record
(docs/dev/ui-refactor/), so the wiki could describe skins but not the console.
New page:
- design-ui-system.md — the thesis (structure belongs to the base, materials to
the skin; four extension points), the one content principle plus the
data→device mapping table, numbers-never-lie, the accent budget, the shell
geometry (30+168 chrome, 56px bar, 38px readout strip, no ruler column, the
900px breakpoint), the type roles, the interaction language (four state
surfaces, two-level confirmations, overlay materials, four motions, phone
rules incl. the pinned action column and hit-area tap targets), and the
contract + gates (kit primitives, tokens, i18n, ui-snap, touch probe,
Node 20).
Also: doc-map gains that row and now points at the machine-local material
(comps = spec, baselines, phase record); Home and the sidebar link both design
pages; the skin doc's control-scale claim about row controls is stated without a
count. The skin doc and the round's other docs were already completed in the
previous commit.
skin doc: complete the design record — hooks, control scale, addresses, devices (#23)
The skin doc had grown by appending round notes as fragments (and inside the
token table, which broke it into three tables); this pass rewrites it as the
durable design, states every rule as a rule, and fills the gaps the shell
round left:
- token contract: table restored, `--spine-w`/`--bay-h`/`--row-ctl-h`/`--tray-ink`
added, split into "the control scale" and "material".
- new "hook vocabulary": every `data-*` socket a skin may depend on, with the
variant-as-opt-out and "read the property the base moves with" rules.
- new "addresses & navigation": engraved EN addresses (`label` vs `labelKey`),
the 30px vertical spine, a piloted bay's lamp kept out of the address's row,
the `navstrip` phone jump bar, `PageAction`.
- "devices" replaces the hand-rolled-chrome note: the session rail, the Sender's
baseline toolbar, BAY's switch.
- rig section gains the touch-target probe.
Same pass over the docs the round touched: W8's circular send control marked
superseded (shape/height now come from tokens), W9 gains the toolbar's dressing
(bare trigger, icon-only below sm, hit-area fingertip), the portal doc gains the
rail's device update, and doc-map points at the machine-local material (comps =
spec, baselines, phase record) and describes the completed doc.
skin doc: post-P7/P8 truth — one status device, the marginalia slot, all three topologies (#23)
The doc still described M1 (2026-09-23). Corrections from the phases that shipped:
- `widgets` is gone (P7): the regions a skin wants are base `Region` slots that cost
nothing while empty, so the manifest field was never needed.
- Status is one device with two call shapes (P8/D-13): `Lamp` is the readout,
`StateSignal` is the inline mark, both render `data-slot="lamp-body"` + `data-state`,
and a skin writes one rule family. The word-style recipe is documented.
- Token contract: added the P7 set (control/table/tray heights, panel radius/shadow,
press displacement, lamp + state ink, marginalia width, motion tokens).
- Shell annotations: the real `data-region` list (chrome/spine/brand/nav/plate/header/
watchbar/baystrip/main/marginalia) and the marginalia slot's contract.
- Topology registry: all three keys are real renderers; `radar` is kept deliberately.
- The two hard skin rules are now test assertions, not prose.
- Skeleton flexibility section: what P7's drill proved, and the two gaps it exposed.
- Snapshot rig: single-mode skins are skipped by reading the resolved mode, and an
`--update` run prunes baselines the matrix no longer produces.
skin system design (issue #23): token contract, skin axis, StateSignal, M1 shipped; BAY/NIGHTWATCH follow
design: live sender — writable mid-turn selects + server-owned queue (#10)
research: live sender — per-target mid-turn prompt/config ground truth (#10)
design: cc-marketplace-deploy follow-up — the Edit dialog also re-picks entries (#6)
design: cc-marketplace-deploy (#6) — one-click claude-code deploys via the emitter
docs: durable design pages for the issue-era fast session pipeline (#2) and pre-warm pool (#3-#4) (#5)
Flatten page names — GitHub wikis flatten directories, prd/design name pairs collided