Skip to content

feat(pi): raise the status panel and editor box to dark-700 - #85

Merged
barbatdev merged 1 commit into
mainfrom
feat/pi-raised-status-panel
Oct 30, 2026
Merged

barbatdev merged 1 commit into
mainfrom
feat/pi-raised-status-panel

Conversation

@barbatdev

Copy link
Copy Markdown
Owner

Summary

gentle-shell paints the right "✿ Status" panel and the editor box with the theme's toolSuccessBg. It was dark-800 (#17102A), barely apart from the dark-900 body (#0B0714). It is now dark-700 (#2C2144), the brand's raised surface, so the panel (and the editor box, which shares the key) reads apart from the tool output.

Contrast on #2C2144: white 14.9:1, muted 5.5:1, accent 4.7:1, success 9.4:1, error 5.5:1. Surface step against the body: 1.34:1.

Verification

  • Theme JSON validates.
  • Not verified visually yet in gentle-shell.

🤖 Generated with Claude Code

https://claude.ai/code/session_01A9D7ph123Jn8iB1eGbr8Nz

@barbatdev
barbatdev merged commit 35b0aee into main Oct 30, 2026
1 check passed
@barbatdev
barbatdev deleted the feat/pi-raised-status-panel branch October 30, 2026 15:43
@barbatdev

Copy link
Copy Markdown
Owner Author

Fleet review (deepseek)

Lens: evidence + test design. The diff is one line: pi/themes/refactoria.json line 31 moves the toolSuccessBg var from #17102A (dark-800) to #2C2144 (dark-700), which the PR body states is what gentle-shell paints the ✿ Status panel and the editor box with. The change is internally consistent (the value matches the branded surface 3, and #2C2144 is already bgElement, border and userBg in the same file), so I found no blocking defect and no acceptance criterion to contradict: the PR links no issue and odd/tasks/refactoria-nan-themes.md says nothing about these keys. What is missing is evidence and coverage, not behavior: the two consumers the PR names cannot be located anywhere in this repository, a third consumer of the same var (colors.toolSuccessBg, line 63) is not mentioned in the body, the verification section names no reproducible command and explicitly says the result was not checked visually, and the PR's own separation figure for the panel against the body (1.34:1) is still below the 3:1 usually asked of UI surface boundaries. Those are recorded below as questions and a suggestion. Note for the record: this PR merged at head 3a8d588 while this review was running, at exactly the head reviewed here.

Suggestion (2)

  • One numeric value now carries four roles; the branding contract lists only one (pi/themes/refactoria.json:31): After this change toolSuccessBg, bgElement (line 7), border (line 9) and userBg (line 28) are all #2C2144, and #2C2144 is documented as a single role, 'surface 3 / official dark700', in the palette table of docs/refactoria-branding.md. Overloading a surface token across the status panel, the editor box, chrome borders and success tool output means any later tuning of surface 3 silently moves all four, with no diff that says so. Recording the extra roles next to that table (or, if the theme schema allows it, giving the panel its own var seeded from the same value) keeps the next change honest.
  • Missing test conditions for a theme-token change (pi/themes/refactoria.json:31): None of these conditions is covered by the PR or by CI, and each one would have caught the attribution gaps above without needing a human eye: (1) every colors.* entry resolves to a declared var — input: the theme file after this change, expected: no alias points at an undeclared name, which is the class of edit that line 63 belongs to; (2) text-on-background contrast matrix for the tokens that can land on #2C2144 — inputs: toolSuccessBg #2C2144 against toolOutput #EBEBEB, toolTitle #9D9CA1, toolDiffAdded #58E6A8, toolDiffRemoved #FF6B8A, expected: each pair ≥ 4.5:1 for body text; (3) surface separation for the surface pairs the PR moves — input: #2C2144 against the body #0B0714 and against #17102A, expected: either ≥ 3:1 or a recorded, cited exception; (4) an enumerated consumer list per theme key, so a one-line var change states which surfaces it repaints.

Question (3)

  • The consumers the PR attributes to this key are not evidenced in this repo (pi/themes/refactoria.json:31): The body states gentle-shell paints the right-hand '✿ Status' panel and the editor box with the theme's toolSuccessBg. I could not find that mapping here: the only in-repo extension, pi/extensions/cortex-agent-state.ts, makes no reference to theme keys, docs/agent-state-v1.md lists 'UI layout, icons, colors' as an explicit non-goal, docs/refactoria-branding.md documents only the palette roles, and the $schema this file points at (earendil-works/pi-mono .../theme-schema.json) returned 404 from my environment, so the semantics of toolSuccessBg are not checkable in this review. The PR's own Verification section says 'Not verified visually yet in gentle-shell'. Please point at where the panel/editor-box mapping is recorded (a gentle-shell source file, a screenshot, or a run log), so a future reader of this one-line change can tell why it repaints those surfaces.
  • The same var also repaints successful tool output, which the body does not mention (pi/themes/refactoria.json:63): Line 63 aliases colors.toolSuccessBg to the toolSuccessBg var, so this change also moves every successful tool-output block from #17102A to #2C2144. After it, success blocks are the lightest block surface in the transcript, while toolPendingBg and infoBg/customMessageBg stay at #17102A (lines 30 and 32) and customMessageBg uses bgSubtle. That may be exactly what you want, but the body enumerates only the status panel and the editor box as consumers, so the effect on tool output looks unintended-by-omission. Intent understated is still intent I should not infer.
  • The stated verification is not reproducible and the separation it reports is still below 3:1 (pi/themes/refactoria.json:31): The body claims 'Theme JSON validates' but names no command, and .github/workflows/ci.yml contains no theme check, so I cannot reproduce it. The body also reports 'Surface step against the body: 1.34:1' — 1.34 is below the 3:1 commonly required for distinguishing adjacent UI surfaces, so by the PR's own number the panel is easier to read apart from the body but still not separated by the usual threshold, which is the complaint the Summary opens with ('barely apart'). Please state the validation command and whether 1.34:1 is accepted for this surface or what the target is; I am not asserting the number is wrong, only that it is unreproduced and that it argues less separation than the framing implies.

Verdict: ready to merge

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