Repository navigation
docs(rendering): add evidence-first renderer plans to #555 - #554
Merged
Juliusolsson05 merged 4 commits intoJul 16, 2026
Conversation
Juliusolsson05
added a commit
that referenced
this pull request
Jul 16, 2026
## Command protocol (Phase 6)
- protocols/command/: CommandRenderModel + CommandView (hljs-bash headline,
workspace-relative cwd, OutputWell body, conclusion line, streaming state).
- Formatter REGISTRY, dir-per-family: formatters/{tests,json,file-mutation}/
+ index.ts priority registration. Contract: conclude() is pure,
conservative-decline, terminal-output-only, ENRICH-never-replace.
- file-mutation uses a real quote/escape-aware shell tokenizer with a
parse-fully-or-decline contract (product-owner rule: no weak regex
matching) — $(…), backticks, fd redirects, subshells, unterminated
quotes abort the whole conclusion. Families captured live from our own
dev session: heredoc writes/appends, inline python3 writers, sed -i.
- Claude: adapters/command.ts (fromClaudeBashBlock streaming-first,
fromClaudePartialBashJson paints the moment `command` closes,
claudeBashResultText/Conclusion); dispatch routes Bash use+result;
silent success renders an explicit empty OutputWell (#524 lesson).
- Codex: adapters/command.ts (exec_command mapping with yield/max meta,
fromCodexExecScript extracts EVERY embedded tools.exec_command incl.
Promise.all fan-outs, stripCodexTransportEnvelope); exec plain-command
case renders a real command card; results upgrade to OutputWell.
- Ported AND OWNED (tests are this branch's contract, #524 is reference
only): shared/parsers/ansi.ts (+stripAnsi), AnsiText, OutputWell
(head+tail preview so final error/summary lines always survive).
- Catalog: graduated codex exec-command + write-stdin to specialized.
## Dir-per-component restructure (product-owner rule, 2026-07-16)
Every distinguished provider component owns a directory, even single-file:
- claude/renderer/components/{edit,multi-edit,write,bash}/
- codex/renderer/components/{apply-patch,exec-command,write-stdin,tool,
tool-result}/
- opencode/renderer/components/read-result/, shared components/todo/
- rows/ClaudeRows.tsx + rows/CodexRows.tsx are now ZERO-LOGIC barrels kept
solely for BlockRow's grandfathered import edges (exact-specifier match
in importBoundaries.test.ts) — deleted with the renderOperation
migration. Provider-internal code imports component dirs directly.
- Live Bash moved out of BlockRow into components/bash/ (the boundary test
correctly rejected feed->adapter imports; zero new grandfather entries).
- Dead code dropped in the split: ClaudeRows.editInput, CodexRows
PatchFileHeader (both orphaned by the Phase 5 CodeEditView cutovers).
Docs: plan .md amendment (dir-per-component) pushed to PR #554 branch.
Verification: tsc -b node+web 0 errors; vitest 877 passed / 1 failed —
packages/claude-code-headless JsonlTailer fs.watch flake, fails ~2/3 in
isolation on untouched pinned submodule code, unrelated to this branch.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Juliusolsson05
changed the base branch from
main
to
feat/render-shapes-phase1-fingerprint-catalog
July 16, 2026 22:23
Product-owner rule from Phase 6 implementation: every distinguished provider component owns a directory (components/<component>/index.tsx), even single-file ones — the directory is the unit of ownership and 'ls components/' doubles as the specialized-rendering coverage list. Same rule inside shared protocol families (command formatters as formatters/<family>/). Records why rows/ClaudeRows.tsx and rows/CodexRows.tsx survive only as zero-logic barrels for the grandfathered BlockRow import edges. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Juliusolsson05
force-pushed
the
plan/evidence-first-feed-rendering
branch
from
July 16, 2026 22:24
cfc00e3 to
d7ef3c5
Compare
Juliusolsson05
marked this pull request as ready for review
July 16, 2026 22:25
Juliusolsson05
merged commit Jul 16, 2026
0e0e365
into
feat/render-shapes-phase1-fingerprint-catalog
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Documentation-only stacked PR that adds the evidence-first rendering plan of record to implementation PR #555. It does not target
maindirectly and makes no runtime changes.The PR contains two complementary documents:
Product contract
Stack and merge order
This PR targets
feat/render-shapes-phase1-fingerprint-catalog, the head branch of #555.Merge this PR first. Its two planning documents then become part of #555, and #555 remains the single PR that merges the complete evidence-first renderer work into
main.PR #524 remains an evidence and salvage source only; it is not an implementation base.
Validation
git diff --checkpasses.