feat(app): add persistent project colour tags - #90
Open
willem4130 wants to merge 6 commits into
Open
willem4130 wants to merge 6 commits into
willem4130 wants to merge 6 commits into
Conversation
Add personal per-project colour choices and an optional shared header stripe, with canonical folder identity, native cross-window updates and isolated preference storage. Native macOS verification exposed CSS zoom coordinate differences between WebKit and Chromium. Normalize anchor coordinates and bound the picker at supported zoom levels; cover both engines in regression tests.
Preserve existing Markdown controls and contexts behind a lazy rich-text renderer, with bounded escaped loading/error fallbacks and the shared React vendor split. Keep the real production chunk-size regression test and tightened initial frontend budget. Verified lazy rich-text loading in the packaged native macOS webview.
willem4130
marked this pull request as ready for review
September 18, 2026 04:35
Author
|
@KenKaiii This PR is now ready for your review. To reduce maintainer setup, I ran the unmodified existing CI workflow independently on the exact PR head and base: all six framework/app jobs passed across macOS, Windows and Linux, including the Windows MSI build-and-launch smoke check. Results: https://github.com/willem4130/gg-framework/actions/runs/35306059427 . Implementation details, regression coverage and local/native verification are in the PR description. The upstream workflow still needs maintainer approval before its own checks can run; the fork results do not bypass that gate. Thank you for taking a look. |
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.
Summary
Cross-platform verification: all six jobs passed in the fork's existing CI workflow, on the exact PR commit and base. The upstream workflow still needs maintainer approval; details below.
Add personal project-colour preferences to the workspace header so multiple project sessions are easier to distinguish.
Implementation
agent.ts. The store validates raw native payloads, listens before reading, rejects stale revisions, and releases listeners when the last subscriber leaves.Startup budget
Rich Markdown rendering is deferred behind a bounded, escaped plain-text loading/error fallback, preserving the existing rich-renderer controls and contexts. A production-build regression checks the real manifest and chunk sizes. The tightened initial-JavaScript baseline is not loosened, and the build test launches Vite through Node directly rather than a Windows-incompatible pnpm shim.
No dependencies, session schema, credentials, permissions, or release configuration are changed.
Verification
Local verification on macOS with Node 22.17.0:
pnpm --filter gg-app test: 557 tests passed across 70 files, with default parallel execution.pnpm --filter gg-app check: passed.pnpm --filter gg-app lint: passed.cargo test --locked --manifest-path gg-app/src-tauri/Cargo.toml: 82 tests passed.pnpm --filter gg-app build: passed, with all production JavaScript chunks below the unchanged 500,000-byte warning limit.node bench/size-gate.mjs --only frontend:initial: passed (526.8 KiB current vs 526.0 KiB baseline).Packaged macOS testing used isolated demo projects and a separate profile, without real credentials or normal settings. Native mouse-event checks passed for all ten colours, None/Automatic, rapid clicks, stripe switching, persisted values, and same-project synchronization while another project's choice stayed independent. Those native checks exercised the picker/focus fixes before the final behavior-preserving bridge relocation; the final bridge's exact command payloads and app-wide event contract are covered by automated transport tests.
Native Windows/Linux colour-picker interactions have not been manually tested. Automated Windows installer build-and-launch verification passed in the fork CI run. This PR is ready for maintainer review; the upstream workflow approval/checks remain pending before merge.
CI status
Independent cross-platform verification passed: fork CI run 35306059427.
The unmodified existing workflow ran against head
2ab93a20f802eed7b91cd7c100d446a5b6ecca2eand basec533dde20271a73c2632bc4afb0ece71393a668a, matching this upstream PR exactly.The Windows app job also passed Packaged app smoke (MSI build + launch). All six jobs completed successfully, without workflow changes or weakened checks.
A temporary verification PR in the fork triggered this run; it is closed without merging and neither repository's main branch is modified.
The upstream CI run still requires maintainer approval (
action_required) and has not started any jobs. The independent results are evidence, not a replacement for the upstream repository's own required checks. Please approve that workflow run when convenient. This PR is ready for review, but the upstream checks still need to run before merge.