Repository navigation
Description
Follow-up from the capability taxonomy v0 investigation (#2027, record: doc/2026-10-29T14-05-00Z_investigation_capability_taxonomy/, PR #2337).
Goal
Semantic style tokens on WorldSurface: a program names intent (emphasis, muted, heading, code, warning, success, link) and each adapter resolves it to its own CSS variables, ANSI attributes or 1-bit dithering.
Why
The issue asks for a styling tool across GUI and web that is neither all-web-elements nor Electron. Emitting DOM breaks the trusted-adapter rule on terminals and ESP32; bundling Electron drags a browser onto a 128×64 display. Tokens keep program intent portable and looks adapter-owned, extending today's ScreenCell (xterm-256 + bold) rather than replacing it.
Scope
- Token runs alongside existing style spans in
ScreenSurface; tokens are a superset with a defined mapping to the current xterm-256/ANSI projection so terminals degrade predictably. - Adapter contract: each adapter must resolve every token (a table in the module header), with a documented fallback for unknown tokens.
- Degradation: 1-bit pixel screens map tokens to on/off/dither; text mode strips them.
- Bounded like style spans (
MAX_SCREEN_STYLE_SPANS).
Acceptance
- Parse/validate token runs; a test asserting an unknown token is refused (
bad_args) rather than dropped silently. - A test asserting the ANSI projection of a token run matches the documented mapping.
- No CSS, HTML or escape sequences reachable from a token document.
Out of scope
A theme document, design system, per-world palettes, font selection, layout.
Acceptance criteria
- Token runs (emphasis, muted, heading, code, warning, success, link) parse and validate alongside existing ScreenSurface style spans, bounded like style spans (MAX_SCREEN_STYLE_SPANS)
- A test asserts an unknown token is refused (bad_args) rather than dropped silently, and the adapter contract table (every adapter resolves every token, documented fallback) is in the module header
- A test asserts the ANSI projection of a token run matches the documented mapping to the current xterm-256/ANSI projection; 1-bit screens map to on/off/dither and text mode strips tokens
- No CSS, HTML or escape sequences reachable from a token document
Activity
developing-today commentedon Oct 29, 2026
CODE-1190
dezren39 commentedon Oct 29, 2026
Intake review
Related: parent investigation #2027 (record: PR #2337); siblings #2338-#2345 are the other taxonomy follow-ups
Notes: Filed 2026-10-29T14:04Z from #2027. Still live: no open or merged PR implements it. Extends today's ScreenCell (xterm-256 + bold) rather than replacing it; pairs with #2339 (semantic tokens are issue #2345's own scope line; text/1 contract is #2339).
Risks: Silent token dropping would make program intent adapter-dependent in invisible ways — the refusal test is the core acceptance item.
Suggested approach: Token set + validation first, ANSI projection mapping second, per-adapter resolution table last.
🤖 Agent note · filed
meta/enrichedapplied. Still-live check this pass: no merged PR or fix commit explicitly resolving this issue was found; where a queue triage task owns verification, it is named in the notes.dezren39 commentedon Nov 3, 2026
🤖 Agent note · triaged
small_fixfollow-up task is enqueued from this triage.pkgs/id/crates/id-core/src/world_presentation.rscarriesMAX_SCREEN_STYLE_SPANS = 4096and the ScreenSurface style-span payload the tokens must run alongside. No token implementation exists: code search forStyleToken/style_token/ semantic-token terms across the repo returns nothing, and no open or merged PR implements this issue (only the parent investigation's docs PR docs(id): capability taxonomy v0 for interface specialization (#2027) #2337, merged). The intake review's still-live verdict stands.world_presentation.rs, bounded byMAX_SCREEN_STYLE_SPANS; (2) an unknown token is refused withbad_args, never dropped silently — the refusal test is the core acceptance item; (3) the documented mapping to the current xterm-256/ANSI projection gets a test asserting the ANSI projection of a token run; (4) the adapter contract table (every adapter resolves every token, documented fallback for unknown tokens) goes in the module header; 1-bit screens map tokens to on/off/dither and text mode strips them; (5) no CSS, HTML, or escape sequences reachable from a token document.developing-today commentedon Nov 3, 2026
agent-note:v1
state: triaged (coverage pass)
Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 40 (priority/normal). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
Found via: coverage pass 2026-11-03
16 remaining items
dezren39 commentedon Nov 4, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 4, 2026
agent-note:v1
event: handed-off
task: 8501 (small_fix, repo-health-code-pilot; worker repo-worker-code; lane code-t)
by: repo-queue-worker lane T
Handed off to the opencode claimant (execution lane: opencode, lane-assignment row 1500). The claimant launches the bound session that drives task 8501 to its terminal state.
dezren39 commentedon Nov 4, 2026
🤖 Agent note · handed off
opencodedezren39 commentedon Nov 4, 2026
🤖 Agent note · handed off
opencode(lane-assignment row 1500)dezren39 commentedon Nov 4, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 4, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off