Repository navigation
Themes from Gecko Suite, chosen for GAM (M7, SA-8) - #63
Merged
Merged
Conversation
GAM wears the theme its person chose for it in Gecko Suite: the suite keeps the library and each app's choice, so GAM can differ from Notes. A palette in the header picks it; "Create and edit themes" opens the suite's Themes page. With none chosen, or the suite away, GAM looks as before (the last theme worn is cached so a reload does not flash). - The theme kit, copied from the suite with APP='gam': api/themes.ts (its own axios instance to the suite, GAM's token; a refusal there never signs anyone out of GAM), theme/, stores/appTheme.ts, the picker. - The light/dark toggle hides while a theme is worn (the theme has a mode). - CSP: connect-src gains SUITE_BASE_URL (templated, as NOTES_BASE_URL is); img-src allows https images, since a background is any address. - The header shows the favicon instead of the emoji. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V1geD2ELWgL2sDpxYbx3Aw
This was referenced Nov 4, 2026
davior
marked this pull request as ready for review
November 4, 2026 22:52
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
GAM now wears the theme its person chose for it in Gecko Suite (suite plan M7, SA-8). The suite keeps the theme library and each app's choice, so GAM can wear a different theme from Notes.
APP='gam'):api/themes.ts,theme/,stores/appTheme.tsand the picker.connect-srcgains${SUITE_BASE_URL}, filled in at container start like${NOTES_BASE_URL}.img-srcallows https images, because a theme background is any address and CSS draws it.Needs gecko-suite#14 for the suite side.
Test plan
cd frontend && npm run lint && npm test && npm run build: lint clean, 484 tests pass, build succeeds. The tests cover:gamand caching it;connect-src, https inimg-src, and the existing hash and template checks.cd backend && pytest -q: 1544 passed. There's no backend change.CORS_ORIGIN.Deployment
CORS_ORIGINlisting GAM's address (https://assets.geckopico.com). Without it, GAM still works; it just has no themes.SUITE_BASE_URL(already in.envfor the AI) is now also passed to the frontend container for the CSP. The default ishttps://suite.geckopico.com, so set it only if the suite lives elsewhere.Generated by Claude Code