Repository navigation
Open
Labels
app/idPackage/app: id (pkgs/ or apps/ in this repo)Package/app: id (pkgs/ or apps/ in this repo)effort/mMedium: expected under 1 day of workMedium: expected under 1 day of workkind/featureNew feature or capability requestNew feature or capability requestmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)Ordinary priority (the default)source/creatorFiled by the new-issue-creator jobFiled by the new-issue-creator jobtask/triageQueue packet kind: verify, reproduce, and route this itemQueue packet kind: verify, reproduce, and route this item
Description
Follow-up from the capability taxonomy v0 investigation (#2027, record: doc/2026-10-29T14-05-00Z_investigation_capability_taxonomy/, PR #2337).
Goal
Formalise text-only mode as the main presentation mode for agents and scripts: a text/1 contract plus a required text projection for every WorldSurface variant.
Why
parse_surface already accepts non-screen documents as legacy UTF-8 text, so text works today by accident. Agents and scripts are the primary consumers, text is what CI can assert without a renderer, and it is the degradation target every other surface needs.
Scope
Text(TextSurface)variant (kind: text) — UTF-8 lines, no escapes, no cursor addressing, no redraw, append semantics.- Width-aware wrapping, default 80, capped like
MAX_SCREEN_WIDTH. - A text projection for
Screen(existingrender_ansiwith colour stripped),Form,MediaandMap, so no surface can exist without one. - Contract documentation in
world_presentation.rsheader andpkgs/id/ARCHITECTURE.mdif it describes surfaces.
Acceptance
kind: textparses and round-trips; a surface without a text projection is rejected at the type level or by a test.- A test renders one program's
ScreenandTextdocuments and asserts the text projection is line-oriented and escape-free. - Legacy plain-string documents stay valid.
Out of scope
A styling/theme system, cursor animation, terminal detection heuristics.
Acceptance criteria
-
kind: text(Text/TextSurface) parses and round-trips: UTF-8 lines, no escapes, no cursor addressing, append semantics, width-aware wrapping (default 80, capped like MAX_SCREEN_WIDTH) - Every WorldSurface variant (Screen, Form, Media, Map) has a text projection; a surface without one is rejected at the type level or by a test
- A test renders one program's Screen and Text documents and asserts the text projection is line-oriented and escape-free
- Legacy plain-string documents stay valid; contract documented in the world_presentation.rs header (and pkgs/id/ARCHITECTURE.md if it describes surfaces)
Metadata
Metadata
Assignees
Labels
app/idPackage/app: id (pkgs/ or apps/ in this repo)Package/app: id (pkgs/ or apps/ in this repo)effort/mMedium: expected under 1 day of workMedium: expected under 1 day of workkind/featureNew feature or capability requestNew feature or capability requestmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)Ordinary priority (the default)source/creatorFiled by the new-issue-creator jobFiled by the new-issue-creator jobtask/triageQueue packet kind: verify, reproduce, and route this itemQueue packet kind: verify, reproduce, and route this item
Activity
developing-today commentedon Oct 29, 2026
CODE-1184
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. Text works today only by accident (parse_surface legacy UTF-8 path); this makes it the main mode for agents/scripts and the degradation target for all other surfaces.
Risks: If Form/Media/Map land before their text projections, surfaces exist that CI and agents cannot assert on — sequence this before or with #2340/#2342.
Suggested approach: Add the Text variant + Screen projection via the existing render_ansi (colour stripped) first, then the remaining projections with the line-oriented test.
🤖 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 1, 2026
🤖 Agent note · picked up
21 remaining items
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
dezren39 commentedon Nov 3, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 4, 2026
🤖 Agent note · picked up
dezren39 commentedon Nov 4, 2026
🤖 Agent note · done — triage verdict: CONFIRMED LIVE; keep #2339 OPEN
Findings
No code change is appropriate for this triage; #2339 stays open by design.