Skip to content

feat(web): settings mark Chromeria features - #200

Merged
lukemaj merged 3 commits into
mainfrom
feat/199-chromeria-settings-mark
Oct 9, 2026
Merged

lukemaj merged 3 commits into
mainfrom
feat/199-chromeria-settings-mark

Conversation

@lukemaj

@lukemaj lukemaj commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

What: Settings now show a small spectrum crystal with a "Chromeria feature" tooltip next to everything Chromeria adds; upstream T3 settings stay unmarked.
Why: The user could not tell which settings are ours (for example "Update providers automatically") and which are upstream.
So what: The user approved merging this once checks pass; it ships in the next Chromeria build.

Closes #199.

Marked items

Item Where Fork origin
Update providers automatically General settings row provider-auto-update, #160
Wight mode Section heading on each provider instance card wight-mode, #188
Prism Settings sidebar entry (whole page is ours) prism-settings, #183
Person select Connections, connected client rows thread-people, #180
Scheduled task fork details (one-shot/weekly schedules, checks, command runs) Scheduled tasks row details, only when present scheduled-tasks, #193

Origins come from docs/fork-features.md and the diff against upstream base 12069eefd7 for apps/web/src/components/settings.

How

One fork-owned component, apps/web/src/components/ChromeriaFeatureMark.tsx (approved design C: hexagonal crystal, red-to-purple gradient from theme color tokens, muted outline, base-ui tooltip, keyboard focusable, role=img label). Rows pass it inside their title (ChromeriaTitle), so upstream's SettingsRow is untouched; the only upstream-file edit is one line in SettingsSidebarNav.tsx, already carried by prism-settings.

Review

Round 1 (independent, GPT-6 Luna): sidebar mark was a nested focus stop (fixed: focusable={false}), Wight mode section heading unmarked (fixed: section titleAction), fork schedules without checks unmarked and mark could wrap apart from its text (fixed). No upstream setting wrongly marked.

Proof

  • vp fmt and vp lint on the 6 changed files: no errors.
  • tsc --noEmit for apps/web: passed.
  • No tests added: no logic beyond rendering.
  • No screenshots: per AGENTS.md no browser was started without permission; the user will see it in the next build.

Elon record

Requirements and who asked: User asked to see which settings are Chromeria's and chose design C.
Deleted: Marks outside settings, a toggle to hide marks, changes to upstream SettingsRow, mobile.
Bottleneck: Finding every fork-owned setting; the fork feature map and upstream diff gave the list.
Checked myself: Diff of settings files against upstream base, lint/format/typecheck output.

Model: Claude Opus 5.5 in Claude Code (Chromeria thread).

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Oct 9, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@lukemaj

lukemaj commented Oct 9, 2026

Copy link
Copy Markdown
Contributor Author

fork-check --base 12069eefd7: OK (24 features), after adding the settings-mark entry to docs/fork-features.md.

@github-actions github-actions Bot added the size:M label Oct 9, 2026
@github-actions

github-actions Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 5.0 KiB 5.0 KiB 0 B (0.0%) 6.8 KiB ✅
Codex Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Codex Live turn WebSocket wire 1.2 KiB 1.2 KiB 0 B (0.0%) 2.0 KiB ✅
Codex Live turn WebSocket decoded 20.9 KiB 20.9 KiB 0 B (0.0%) 29.3 KiB ✅
Codex Live turn messages 2 2 0 (0.0%) 8 ✅
Claude Total thread wire 5.0 KiB 5.0 KiB −7 B (−0.1%) 6.8 KiB ✅
Claude Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Claude Live turn WebSocket wire 1.2 KiB 1.2 KiB −7 B (−0.6%) 2.0 KiB ✅
Claude Live turn WebSocket decoded 21.2 KiB 21.2 KiB 0 B (0.0%) 29.3 KiB ✅
Claude Live turn messages 2 2 0 (0.0%) 8 ✅

Baseline: 31aa793 · PR result: d092c57 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

The sidebar mark is no longer its own focus stop, the whole Wight mode
section is marked, and fork schedules carry the mark on one line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@lukemaj

lukemaj commented Oct 9, 2026

Copy link
Copy Markdown
Contributor Author

Independent review round 2 (GPT-6 Luna) on d092c57c: round-1 fixes verified; no blocking findings. Remaining P3 accepted: keyboard focus on the Prism sidebar button does not open the mark's tooltip (hover does; the mark keeps role=img with label "Chromeria feature", so screen readers still announce it). Making it focusable would put a focus stop inside a button, which round 1 flagged.

@lukemaj
lukemaj merged commit dda384d into main Oct 9, 2026
26 of 27 checks passed
@lukemaj
lukemaj deleted the feat/199-chromeria-settings-mark branch October 9, 2026 14:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Settings mark Chromeria features with a spectrum crystal

1 participant