Repository navigation
feat(web): add account appearance preferences - #1594
Open
JacobWeyer wants to merge 7 commits into
Open
JacobWeyer wants to merge 7 commits into
JacobWeyer wants to merge 7 commits into
Conversation
Store validated colors and font IDs with atomic revision checks. Keep account drafts through retries and conflicts. Add custom schemes, preset renderer palettes, local Fontsource fonts, and function documentation.
Contributor
|
✅ engrams reviewed b798638: no findings. |
|
All contributors have signed the CLA ✍️ ✅ |
Author
|
I have read the CLA Document and I hereby sign the CLA |
Co-authored-by: engrams-agent[bot] <289318790+engrams-agent[bot]@users.noreply.github.com>
Replace the applied prose suggestion with valid font resolution. Require metadata for each shared font ID, preserve the current option order, and use checked defaults for application, preview, and terminal fonts. Cover registry validation, unknown IDs, heading width, and terminal measurement.
This branch has not been deployed
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.
Problem
The app has fixed colors and fonts. Its browser-wide theme mode does not follow an account to another device. Accounts in one browser can also share that mode.
Closes #1593.
Fix
Store a validated appearance document per account through authenticated GET/PATCH routes. Use atomic revision checks, a per-account cache, retained drafts, retry, and explicit conflict choices. Offer an explicit import for old browser settings.
Add Appearance controls for custom schemes, JSON color import/export, and independent body, heading, and code fonts. Add Dracula, Catppuccin, Nord, Solarized, and Gruvbox for light, dark, and system modes. Keep current defaults.
Apply palette and font roles across previews, code, diffs, editors, and terminals. Serve optional Inter and Fira Code fonts from local Fontsource assets with full license notices. Preserve reference ANSI colors and readable terminal selections.
Add migration 0095, shared package inputs for both images, CI path coverage, design documentation, and function docstrings. ADR 0124 records account persistence and revision rules.
Derive font options from shared IDs with compile-time metadata checks. Resolve unknown IDs to role defaults in application styles, previews, heading width, and terminal font measurement.
Ghostty 0.4.0 retains colors in existing terminal text cells. Its public API updates the background, cursor, selection, and font without a reconnect.
Test
Current font-registry correction:
git diff --checkpassed.The initial feature validation passed all 1,046 web tests and 20 contract/API/live-Postgres/migration-journal tests. A fresh Postgres 18 database accepted all migrations; a repeat run made no changes. The font correction does not change migrations or accepted API IDs.
Workflow YAML and shared-package path selection passed during feature validation. Actionlint had no new findings compared with the base branch. No local Rust checks were needed for the web and shared TypeScript changes. Current-head
CI Gateand the contributor CLA check must pass before merge.