Repository navigation
Themes from Gecko Suite, chosen for Notes (M7, SN-8) - #222
Merged
Merged
Conversation
With IDENTITY_PROVIDER=suite, Notes' themes come from Gecko Suite: the library is the suite's (made and edited on its Themes page) and Notes wears its own choice (theme.notes), so it can differ from GAM and GVC. Notes' Themes settings list the suite's themes to choose from and link to the editor. With IDENTITY_PROVIDER=notes nothing changes. - api/suiteThemes.ts: the browser asks the suite directly with Notes' token, through its own axios instance (a refusal never signs anyone out of Notes), answering in Notes' Theme shape so the settings and applyThemeToDom are unchanged. - The last theme worn is cached and drawn at start, and kept when the suite does not answer. - Shared notes: the public page cannot ask the suite, so choosing the shared-note theme stores a copy of its values (shared_theme), which routers/shared.py serves ahead of the older shared_theme_id. - CSP: connect-src gains the suite; img-src allows https images (a theme background is any address). - The header and sign-in pages show 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 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
With
IDENTITY_PROVIDER=suite, Notes' themes now come from Gecko Suite (suite plan M7, SN-8). The suite keeps the theme library, which is made and edited on its Themes page, and Notes wears its own choice (theme.notes), so it can differ from GAM and GVC.With
IDENTITY_PROVIDER=notesnothing changes. Notes' own theme tables stay until M8.api/suiteThemes.ts:Themeshape, so the settings screen andapplyThemeToDomare unchanged.shared_theme).routers/shared.pyserves that copy ahead of the oldershared_theme_id, which still works.connect-srcgainshttps://suite.geckopico.com, next to the existing GAM address.img-srcallows https images, because a theme background is any address.Needs gecko-suite#14. Matches davior/gam#63 and davior/gvc#42.
Test plan
cd backend && pytest -q: 1429 passed, 1 skipped. Three of those are new intests/test_shared_theme.py:shared_theme_idstill works;cd frontend && npm test && npm run build: 234 tests pass, build succeeds. There are no new frontend tests: Notes' frontend tests run without a DOM or localStorage, and the new code is browser-only. The suite and GAM tests cover the same logic.Deployment
CORS_ORIGINlisting Notes' address (https://notes.geckopico.com), then run the suite's importer so Notes' themes and each person's choice come across (docs/deploying.md§7).IDENTITY_PROVIDER=suite, which you already have.Generated by Claude Code