Round 11 of the Codex gauntlet. Two of the loudest findings are regressions introduced by round 10.
Confirmed closed in round 10 — do not revisit
Header rule #3C3C3C, sidebar footer rule #393939, sidebar width 310pt. All three verified lighter-than-surface, i.e. real rules rather than antialiasing.
Regressions introduced by round 10
Two simultaneous selection highlights. Restoring the nav fill gave the sidebar two #333333 bands — the "Chat" nav row (y 62–98) and the conversation row (y 131–168) — with identical fill, height and inset. Nothing distinguishes current from adjacent. The reference has exactly one in a 1024pt-tall sidebar.
The overflow menu is back at #FFFFFF. Round 9 measured it at #8B8B8B after moving to .tint. Round 10 set the header title to Theme.foreground, and the menu appears to have followed. Reference is #8B8B8B; ours now matches the title beside it, inverting the hierarchy again.
Objective
1. Header is 87% too tall and the title truncates beside a 402pt void — STRUCTURAL, loudest
Reference: traffic lights and conversation title share one row (lights centre y=28, title ink y=21.0–36.0); rule at y=55.0.
GoCode: app name on the titlebar row, conversation title on a second row (ink y=71.0–86.5); rule at y=103.0. The title truncates at x=820 with an ellipsis, the "···" sits at x=854.5, then nothing until a lone chevron at x=1268 — a 402pt void in a 1057pt row. The title is being squeezed while 38% of its row is empty.
2. One selection, not two — STRUCTURAL (regression, above)
3. Every rule and border is 2× the reference's weight — COSMETIC, but it is every line in the app
Reference: 0.5pt (1 raw px) for composer border, header rule, footer rule, sidebar divider. GoCode: 1.0pt (2 raw px) for all four. Colours match on three; the sidebar divider does not — reference #434343, ours #2F2F2F.
4. Overflow menu ink — COSMETIC (regression, above)
5. Corner radii ~40% short on the two smallest surfaces — COSMETIC
User bubble: reference r≈18pt, ours r≈10pt. Selected sidebar row: r≈10pt vs r≈6pt on identical 36pt rows. Composer is close (24 vs 20pt).
6. Transcript vertical rhythm is inverted — STRUCTURAL
|
rule→bubble |
bubble→tool label |
label→rule |
rule→body |
| Reference |
39.0pt |
62.0pt |
13.0pt |
25.5pt |
| GoCode |
65.5pt |
19.5pt |
9.5pt |
19.5pt |
The reference opens tight then breathes before the tool block; ours opens loose then crams the tool block 3.2× tighter. Every later gap is ~25% short.
7. Tool-activity label is a second, smaller type size — STRUCTURAL
Reference runs the transcript at one size and separates the tool row by colour alone: body cap 12.0pt, "Worked" cap 12.0pt, ratio 1.00. Ours shrinks and dims it: 12.5pt vs 10.0pt, ratio 0.80.
8. Zero accent colour anywhere — STRUCTURAL
Reference sidebar carries 2,329 chromatic px as a status channel: #E0A030 identity avatar, #90C0F0 unread dots, #A070F0 branch marker. Ours: 0 chromatic px in the entire app. Both transcripts are 0/0, so this is confined to the sidebar.
Out of Scope
Measured exact and not to be touched: content column width (883.0 vs 883.5pt), body type size and x-height, all five surface fills, all four rule colours, composer placeholder, section-header #747474, selected-row fill and geometry, composer insets, bubble padding, send-button size.
Lower-ranked, a later round: action-icon row pitch, sidebar text column alignment, toolbar icon mismatch, composer elevation halo, send-button fill, window top hairline, chip label brightness, footer identity row, chip icon sizing (improved from 48%/85% to 19%/46%, not closed).
Acceptance Criteria
Test Requirements
- A test asserting only one selection token can be applied per sidebar
- Rule-weight token test (0.5pt)
- Radius token tests
- Existing 189 Swift tests keep passing
Dependencies
Round 10 (#1074, PR #1072).
Round 11 of the Codex gauntlet. Two of the loudest findings are regressions introduced by round 10.
Confirmed closed in round 10 — do not revisit
Header rule
#3C3C3C, sidebar footer rule#393939, sidebar width 310pt. All three verified lighter-than-surface, i.e. real rules rather than antialiasing.Regressions introduced by round 10
Two simultaneous selection highlights. Restoring the nav fill gave the sidebar two
#333333bands — the "Chat" nav row (y 62–98) and the conversation row (y 131–168) — with identical fill, height and inset. Nothing distinguishes current from adjacent. The reference has exactly one in a 1024pt-tall sidebar.The overflow menu is back at
#FFFFFF. Round 9 measured it at#8B8B8Bafter moving to.tint. Round 10 set the header title toTheme.foreground, and the menu appears to have followed. Reference is#8B8B8B; ours now matches the title beside it, inverting the hierarchy again.Objective
1. Header is 87% too tall and the title truncates beside a 402pt void — STRUCTURAL, loudest
Reference: traffic lights and conversation title share one row (lights centre y=28, title ink y=21.0–36.0); rule at y=55.0.
GoCode: app name on the titlebar row, conversation title on a second row (ink y=71.0–86.5); rule at y=103.0. The title truncates at x=820 with an ellipsis, the "···" sits at x=854.5, then nothing until a lone chevron at x=1268 — a 402pt void in a 1057pt row. The title is being squeezed while 38% of its row is empty.
2. One selection, not two — STRUCTURAL (regression, above)
3. Every rule and border is 2× the reference's weight — COSMETIC, but it is every line in the app
Reference: 0.5pt (1 raw px) for composer border, header rule, footer rule, sidebar divider. GoCode: 1.0pt (2 raw px) for all four. Colours match on three; the sidebar divider does not — reference
#434343, ours#2F2F2F.4. Overflow menu ink — COSMETIC (regression, above)
5. Corner radii ~40% short on the two smallest surfaces — COSMETIC
User bubble: reference r≈18pt, ours r≈10pt. Selected sidebar row: r≈10pt vs r≈6pt on identical 36pt rows. Composer is close (24 vs 20pt).
6. Transcript vertical rhythm is inverted — STRUCTURAL
The reference opens tight then breathes before the tool block; ours opens loose then crams the tool block 3.2× tighter. Every later gap is ~25% short.
7. Tool-activity label is a second, smaller type size — STRUCTURAL
Reference runs the transcript at one size and separates the tool row by colour alone: body cap 12.0pt, "Worked" cap 12.0pt, ratio 1.00. Ours shrinks and dims it: 12.5pt vs 10.0pt, ratio 0.80.
8. Zero accent colour anywhere — STRUCTURAL
Reference sidebar carries 2,329 chromatic px as a status channel:
#E0A030identity avatar,#90C0F0unread dots,#A070F0branch marker. Ours: 0 chromatic px in the entire app. Both transcripts are 0/0, so this is confined to the sidebar.Out of Scope
Measured exact and not to be touched: content column width (883.0 vs 883.5pt), body type size and x-height, all five surface fills, all four rule colours, composer placeholder, section-header
#747474, selected-row fill and geometry, composer insets, bubble padding, send-button size.Lower-ranked, a later round: action-icon row pitch, sidebar text column alignment, toolbar icon mismatch, composer elevation halo, send-button fill, window top hairline, chip label brightness, footer identity row, chip icon sizing (improved from 48%/85% to 19%/46%, not closed).
Acceptance Criteria
#333333band in the sidebar#434343#8B8B8BTest Requirements
Dependencies
Round 10 (#1074, PR #1072).