Skip to content

macapp round 11: single-row header, one selection, half-weight rules #1075

Description

@dennisonbertram

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

  • Header ≈55pt with the title on the window-control row and the full row available to it
  • Exactly one #333333 band in the sidebar
  • All four rules 0.5pt; sidebar divider #434343
  • Overflow menu #8B8B8B
  • Bubble radius ≈18pt, selected row ≈10pt
  • Transcript gaps within ~15% of the reference's four measurements
  • Tool label the same cap height as body, separated by colour alone
  • Every claim probed on the running app; rules verified lighter-than-surface and measured for weight in raw px

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).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    taskScoped engineering task

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions