Skip to content

Port the fork UI patch stack to the app overlay: the yellow-chunks grammar (#853) - #954

Merged
aarontrowbridge merged 7 commits into
mainfrom
853-yellow-port
Sep 10, 2026
Merged

Port the fork UI patch stack to the app overlay: the yellow-chunks grammar (#853)#954
aarontrowbridge merged 7 commits into
mainfrom
853-yellow-port

Conversation

@aarontrowbridge

@aarontrowbridge aarontrowbridge commented Sep 10, 2026

Copy link
Copy Markdown
Member

What

Ports the yellow-chunks patch stack to the app overlay — the #853 scope that remains after S2 (posture indicator, #864) and S1 (agent_order, #862) landed.

A scoping discovery shaped the port: the issue's "10 commits" range is 9 content commits + the merge f3aad3cc4. Of the two pre-merge commits, the fork's own merge resolved one away: fe6eac6b1 (section-transition chunking) was NOT carried — the heading-anchored segmentation (which the overlay already has, byte-identical to the yellow-chunks tip) is the live design. dc116cd6c (the base yellow chip) DID land and was missing from the overlay. The port is therefore 8 content commits' worth of design.

The overlay's target files were byte-identical to the fork base (d161eb0c) the stack was written against, so the diffs ride nearly verbatim — re-homed only where the port demands (docket → the ui package beside edit-row.ts; tests → the extension vitest lane).

The grammar (commit 1:1 with the fork's design)

  1. The yellow chip (dc116cd6c) — the user's words are the solid yellow chip in both schemes: --accent fill, --accent-ink, per-scheme edge token (--prompt-bubble-edge: ink border on light, transparent on dark); the sticky ghost bubble carries the same tokens.
  2. Yellow answers + WAAPI bubble lock (8c91b45fa) — the answered-question's answer renders with the --prompt-bubble-* tokens right-aligned to the user's side; the sticky bubble drops the YOU label; hand-offs merge via a 240ms WAAPI pass (element persists, honors prefers-reduced-motion).
  3. The docket (6dac9ce04) — collapsed tool rows carry their evidence: edited-files rows show per-file tokens with summed ±, explored rows show file/pattern/dir tokens with repeat counts, shell rows surface the failure count. Row = summary, dropdown = detail.
  4. The slab (1bd3ae7d7) — fenced code inside prose fragments leaves the prose-card grammar: full-bleed across the fragment gutters, quiet layer-02 ground, language label top-right, shell-kind's nested box silenced.
  5. Prompt bubble dark inversion (99cb3f93d + 1e2e44b66 net) — on dark the chip inverts into a layer-01 dark box with the FULL-strength yellow border (one step louder than the fragments' --accent-edge hairline). The prose-fragments yellow-edge pass was reverted on the fork the same day — the recording comment lands; fragments stay on the theme hairline in both schemes.
  6. Dropdown detail (85d3eaf04) — read/edit rows carry clickable file targets (opens in the editor, full path tooltip); shell rows gain the status dot (running pulse / error / done), the $ prompt, wall duration, exit code when nonzero, one-line output preview.

Tests (the overlay's headless pattern — #848/#859/#862 precedent)

packages/extension/test/yellow_chunks_853.test.ts (18 tests): the full fork test cases for the docket helpers and shellRowDetail, plus CSS-grammar regression guards for the slab / docket slots / yellow answer chip / per-scheme bubble seating / shell command anatomy (the #349 deletion bug class).

Gates

  • drift gate PASS (upstream archive sha verified + 617-file overlay/manifest sync); manifest hashes registered for all 8 edited overlay files
  • pnpm run typecheck clean; extension vitest: 3106 passed — pre-existing local failures only (terminal ×2 fails on clean main too; cli_gate ×1 is partial-bin residue in the worktree, skips on pristine CI)
  • i18n: no new keys (the docket/anatomy keep the fork's hardcoded summary words; aria-labels as on the fork) — parity ×18 untouched
  • CI green: all 9 checks (app-bundle-gate, bundle-build-gate, fast, schema-roundtrip, vsix-gate, boot-smoke ×3, app-shelf-boot-proof)
  • no engine changes, no fork edits (read-only), no behavior changes beyond the visual grammar

Refs #853

…mpt bubble's chip, and the bubble lock as a WAAPI merge

Port of fork amico/yellow-chunks-on-21 8c91b45fa to the app overlay (#853).
The overlay's target files are byte-identical to the fork base the commit
was written against (d161eb0c), so the diff rides verbatim: the answer
renders with the --prompt-bubble-* tokens right-aligned to the user's side;
the sticky bubble drops the YOU label; hand-offs merge via a 240ms WAAPI
pass (chip element persists — remount + CSS entrance strobed under smooth
scrolling, tried and reverted same day on the fork).

Refs #853
@coderabbitai

coderabbitai Bot commented Sep 10, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Port of fork amico/yellow-chunks-on-21 6dac9ce04 to the overlay (#853).
Edited-files rows show per-file tokens with summed ±, Explored rows show
file/pattern/dir tokens with repeat counts, shell rows surface the failure
count. Pure docket helpers; dropdowns unchanged (row = summary, dropdown =
detail). Counts remain as the pending fallback.

Re-homed in the port: docket.ts lives beside edit-row.ts in the ui package
(same import seam, ./edit-row relative) with a getFilename inline — no
cross-package imports, so the extension vitest lane runs it headless; the
re-export shim follows the amicode-shell-row pattern.

Refs #853
Port of fork amico/yellow-chunks-on-21 1bd3ae7d7 to the overlay (#853).
Full-bleed across the fragment gutters, quiet layer-02 ground in both
schemes (shiki tokens stay readable), language label top-right via attr(),
copy button keeps its corner. Scoped to prose fragments; tool-output code
keeps the inline treatment. Shell-kind's nested box explicitly silenced.

Refs #853
…erts to a dark box with the full yellow border

Port of fork amico/yellow-chunks-on-21 dc116cd6c + 99cb3f93d, with the
1e2e44b66 revert's recording (net): on LIGHT the user's words are the
solid yellow chip — --accent fill, --accent-ink, the ink border
(--accent-edge-ink; yellow can't define itself on the near-white ground).
On DARK the chip inverts into a layer-01 dark box with the FULL-strength
yellow border — one step louder than the assistant fragments' --accent-edge
hairline — under base ink. The sticky ghost bubble carries the same tokens
+ edge (--prompt-bubble-edge, width kept so geometry never shifts between
schemes).

The prose fragments' own yellow-edge pass (048a11ab3) was reverted the same
day on the fork — the fragments stay on the theme hairline; the recording
comment lands in the section docs. (fe6eac6b1, the section-transition
chunking, was resolved away by the fork's own merge f3aad3cc4 — the
heading-anchored segmentation the overlay already carries is the live
design; nothing to port there.)

Refs #853
Port of fork amico/yellow-chunks-on-21 85d3eaf04 to the overlay (#853).
Expanded dropdowns: read and edit rows carry clickable file targets (icon +
mono name, full path tooltip, opens in the editor); shell rows gain a status
dot (running pulse / error / done), the $ prompt, wall duration, exit code
when nonzero, and the tool's one-line output preview. Pure shellRowDetail
helper; docket rows unchanged at the top level.

Refs #853
…ash registration

The docket and shellRowDetail helpers under the extension vitest lane (the
#848/#859/#862 headless pattern — the repo's runner, never bun), covering
the fork's full test cases, plus CSS-grammar regression guards for the
slab / docket slots / yellow answer chip / per-scheme prompt-bubble seating
/ shell command anatomy (the #349 deletion bug class). Manifest hashes
registered for all 8 edited overlay files (the #848 gate); drift gate PASS.

Refs #853
…ault token

The fork's docket CSS never had a [data-kind="file"] selector (files are
the default token kind; dir/pattern/more carry the data-kind). Assert the
real grammar: the icon slot and the more-token.

Refs #853
@aarontrowbridge
aarontrowbridge marked this pull request as ready for review September 10, 2026 07:43
@aarontrowbridge
aarontrowbridge merged commit a7741ee into main Sep 10, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant