Repository navigation
revert(theme): drop Dimidium as a built-in, use stock theme import - #25
Merged
Merged
Conversation
Prefer stock T3 Code capabilities over fork-level divergence. Dimidium does not need to be compiled in: upstream already ships a theme import path (Settings -> Appearance), and a theme file generated by the repo's own serializeThemeFile imports cleanly as a custom theme. Removing it takes the fork's theme divergence to zero. Five of the six files here return to matching upstream byte-for-byte; the sixth is a pure 250-line deletion from the generated mobile stylesheet, exactly reversing what #24 added. This does not give back what #21 bought. index.css still carries no palette, so the conflict surface that motivated the port -- 6 of the 21 conflicts in the 1295-commit sync -- stays closed. The fork now carries less theme code than before #24, not more. Kept: the --info/--success block in index.css. Upstream deliberately keeps success, info, provider and channel identity colours outside the themeable role set, so no imported theme can carry them. Those four roles are the one part stock cannot express. Known cost: the React Native mobile app enumerates built-ins only and has no custom-theme support, so Dimidium is no longer available there. The iPhone PWA is unaffected, since it runs the web bundle. A theme file is generated at ~/dimidium.json. It could not be imported into this fork while "dimidium" was a built-in -- BUILT_IN_THEME_IDS feeds RESERVED_THEME_IDS, and parseThemeFile rejects a reserved id. This commit frees it. Verified: typecheck exit 0; vp check 0 errors; full mobile suite 1230/1230 run from apps/mobile, matching CI's count. Re-opens #21. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 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.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
deanjstone
added a commit
that referenced
this pull request
Sep 6, 2026
The comment said the Dimidium palette lives in themePalettes.ts as a selectable theme. #25 removed it from the repo entirely — it is now imported as a custom theme through Settings -> Appearance, so the pointer sent a reader to a file that no longer mentions it. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
serializeThemeFile.Why
Preference for stock capability over fork-level divergence. Upstream already ships a theme import path, so carrying a palette in source was solving a problem the app solves itself.
This does not give back what #21 bought.
index.cssstill carries no palette, so the conflict surface that motivated the port — 6 of the 21 conflicts in the 1295-commit sync — stays closed. The fork now carries less theme code than before #24, not more.Revert fidelity
Five of six files return to matching
upstream/mainbyte-for-byte:packages/shared/src/themePalettes.tsapps/mobile/generated-uniwind-theme-names.jsonapps/mobile/uniwind-types.d.tsapps/mobile/scripts/generate-uniwind-themes.test.tsapps/mobile/src/lib/mobileThemeRuntime.test.tsapps/mobile/generated-uniwind-themes.cssGenerated artefacts were regenerated via
vp run --filter @t3tools/mobile generateand theuniwind generate-artifactsCLI, not hand-edited.Kept deliberately
The
--info/--successblock inindex.css(21 lines). Upstream deliberately keeps success, info, provider and channel identity colours outside the themeable role set, so no imported theme can carry them. These four roles are the one part stock genuinely cannot express.Known cost
Dimidium is no longer available in the React Native mobile app.
MOBILE_THEME_IDSenumerates built-ins only and the mobile app has no custom-theme support at all (confirmed: zero references to the custom-theme storage key underapps/mobile/src). The iPhone PWA is unaffected — it runs the web bundle, which supports imported themes.Side effect: the theme file becomes importable here
A theme file is generated at
~/dimidium.json(untracked). Whiledimidiumwas a built-in it could not be imported into this fork —BUILT_IN_THEME_IDSfeedsRESERVED_THEME_IDS, andparseThemeFilethrowsThe theme id "dimidium" is reserved.This PR frees the id.Note the file carries the post-fix values, including #24's WCAG correction (placeholder was 4.07:1 light / 3.23:1 dark, now 4.60:1 in both) — so the imported theme is the accessible version, not the original palette.
Test plan
typecheck— exit 0, 0 errorsvp check— exit 0, 0 errors (593 pre-existing warnings)apps/mobileso the count matches CI's rather than an over-narrow filter~/dimidium.jsonthrough the UI after merge, and its appearance in light/darkRe-opens #21.
🤖 Generated with Claude Code