Repository navigation
The brand migration missed three packages and a placeholder - #159
Merged
Merged
Conversation
My earlier sweep searched one stylesheet. The gatekeeper UIs are separate Vite bundles that ship their own copies of the Kumo tokens, and they were never migrated at all -- not half-way, like workshop-frontend, but untouched. The "+ New collection" button on the Context Library is #ff4801, pure Cloudflare orange, in both themes. It also fails contrast: #ff4801 with white text is 3.40:1, worse than the 4.30:1 hover this branch already fixed elsewhere, and it is a button label rather than a hover state. gatekeeper-context and gatekeeper-scheduler now carry the same green ramp as the workshop: 7.52 / 9.50 light and 5.29 / 6.74 dark, all above 4.5. mcp-shared/html.ts too, where the orange is --contrast, the primary button background on the OAuth consent pages. A Cloudflare-branded button on a FieldOS deployment is misleading about who is asking for access, which makes it more than cosmetic. Separately, the blueprint cards drew a fake document -- a header, a divider and five rows of four columns, identical for every blueprint -- so three unrelated blueprints rendered as three identical grey documents that read as a loading skeleton. On this fork it never resolves: screenshots need the BROWSER binding, which standalone workerd does not have, so metadata.screenshot is never set and the placeholder is the only thing anyone sees. It now shows initials from the blueprint's own title over its gradient -- true data, and distinct per card. Rendering that caught a bug before it shipped: first-letters gave "Workspace Slides" and "Workspace Sheets" both "WS". Measured against the seven titles this deployment actually ships, first-letters collides once and the trailing word collides zero times, so it uses the trailing word.
Four packages ship their own copy of the Kumo tokens and a change to one reaches none of the others. DESIGN.md now lists all four with the grep that finds them, and notes that mcp-shared's copy is the primary button on an OAuth consent screen, where inherited Cloudflare orange misrepresents who is asking for access. Also records that blueprint screenshots can never exist on this fork -- capture needs the BROWSER binding and standalone workerd has none -- so the placeholder is permanent rather than transient, which is what rules out anything skeleton-shaped. The scope rule in AGENTS.md gains the recurrence: it was written hours before a sweep of the single file where the tokens are defined reported a migration complete while three other bundles were still fully orange. In a monorepo, ask which packages build their own bundle before concluding a value is gone.
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.
Found by a user in a screenshot, not by my sweep. Fixes what #155 missed and records why it was missed.
The miss
My earlier sweep searched
packages/workshop-frontend/src/styles.css— the file where the tokens are defined — and reported the migration complete. Four packages ship their own copy of the Kumo tokens, and a change to one reaches none of the others:workshop-frontend/src/styles.cssgatekeeper-context/app/styles.cssgatekeeper-scheduler/app/styles.cssmcp-shared/src/html.tsNot half-migrated like the Workshop was — untouched.
Why it is more than cosmetic
#ff4801with white text is 3.40:1, below the 4.5:1 AA floor. That is worse than the 4.30:1 hover #155 already fixed, and it is a button label rather than a hover state, so it is the resting appearance of a primary action.In
mcp-sharedthe orange is--contrast, the primary button background on OAuth consent screens. A Cloudflare-branded "allow access" button on a FieldOS deployment misrepresents who is asking.All three now carry the same green ramp already shipped in the Workshop: 7.52 / 9.50 light, 5.29 / 6.74 dark, all above 4.5.
The blueprint cards
The first screenshot showed three blueprints rendering as three identical grey documents. That is
BlueprintPreviewPlaceholder, which drew a fake document — header, divider, five rows of four columns — the same for every blueprint.On this fork it is not a fallback, it is the permanent state.
blueprintScreenshotUrl()returnsundefinedunlessmetadata.screenshotis set, which requires theBROWSERbinding; standaloneworkerdhas no Browser Rendering, so no FieldOS deployment will ever have blueprint screenshots. A skeleton that never resolves reads as perpetual loading, and drawing fake content makes unrelated blueprints look the same.It now shows initials from the blueprint's own title over its id-derived gradient: real data, distinct per card, claiming nothing that was not captured.
Rendering it caught a bug before it shipped. First-letters gave "Workspace Slides" and "Workspace Sheets" both
WS— I would have replaced three identical documents with two identical initials. Measured against the seven titles this deployment actually ships: first-letters collides once, the trailing word collides zero times. It uses the trailing word (Do/Sl/Sh).Records
DESIGN.mdlists all four token locations with the grep that finds them, and why themcp-sharedcopy matters.AGENTS.md's scope rule gains the recurrence — it was written hours before this happened, which is the point: nothing about the command looked wrong, and the answer to "which files could hold a second copy" in a monorepo is usually "every package that builds its own bundle".pnpm lint0 ·pnpm test0 · all four affected packages build.