docs(devlog): plan brand marks for the 38 providers that render bare - #3092
Conversation
PROVIDER_REGISTRY has 83 entries. providerIconSrc() resolves 45 and returns undefined for 38, so those fall back to a coloured initial tile in the provider rail, details panel and dashboard rows. The Add-Provider catalog is worse: it draws no mark for any provider at all, and that is the surface a user picks a provider FROM. Three of the 38 need no sourcing. minimax.svg landed for the MiniMax Code client in #3082 and nothing connected it to the MiniMax provider, because CLIENT_MARKS is keyed by ExportClientId and PROVIDER_ICON_ALIASES by provider id. Same for xiaomi-color.svg and xiaomi-mimo. Three map rows and a guard. The other 35 get two parallel Aside sourcing lanes. Every registry entry carries baseUrl and dashboardUrl, so no lane guesses where a vendor lives. Raster-only vendors get vectorized the way hermes-agent.svg and gajae-code.svg were. The audit corrected three things in the painting doc. Provider marks sit on a --raised 31px tile with a border, not on the page surface, so contrast has to be measured against the tile. That tile already sets color: var(--text), so a mask branch costs one rule. And a third painting mechanism already exists -- .usage-source-mark--mono uses filter: invert(1) on the same grok.svg the Integrations page just masked -- which wp5 must unify or explain rather than become a fourth spelling of.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
✅ Deterministic PR hygiene checks passed. |
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (6)
📝 WalkthroughWalkthroughAdded six planning documents for provider mark coverage, asset mapping, sourcing, rendering, catalog integration, validation, and stacked delivery. ChangesProvider marks
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested reviewers: ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5464c8e0dd
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| to cover provider assets: any single-ink, near-neutral mark (channel spread | ||
| <= 24, luminance outside 0.12-0.75) that is NOT masked fails, and any | ||
| multi-colour or gradient mark that IS masked fails. |
There was a problem hiding this comment.
Derive the guard from actual tile contrast
For a neutral mid-gray such as #646464 (relative luminance ≈0.127), this proposed condition treats the asset as safe because it lies inside the 0.12–0.75 range, even though its contrast against the documented #303030 dark tile is only ≈2.23:1—below this plan's own 3:1 requirement. A newly sourced single-ink mark can therefore remain unmasked while the automated guard passes; calculate contrast against both actual tile backgrounds and fail values below 3:1 instead of using this broad luminance band.
Useful? React with 👍 / 👎.
| Every push uses `--no-verify`; the local full backend suite is forbidden, so | ||
| backend proof comes from CI. Each PR merges with `--squash --admin` only after |
There was a problem hiding this comment.
Restore the required local PR-ready checks
For the non-trivial GUI PRs in this stack, this instruction deliberately bypasses the pre-push gate and forbids the local full suite, even though repository policy requires both bun run typecheck and bun run test before creating or updating a non-trivial PR as review-ready; green remote CI is not stated as a substitute. Remove the blanket prohibition and schedule those local checks before each PR is marked review-ready.
AGENTS.md reference: AGENTS.md:L207-L209
Useful? React with 👍 / 👎.
Summary
PROVIDER_REGISTRYhas 83 entries.providerIconSrc()resolves 45 and returnsundefinedfor 38, so those fall back to a coloured initial tile in the provider rail, the details panel and the dashboard rows. The Add-Provider catalog is worse: it draws no mark for any provider at all, and that is the surface a user picks a provider from.Three of the 38 need no sourcing.
minimax.svglanded for the MiniMax Code client in #3082 and nothing connected it to the MiniMax provider, becauseCLIENT_MARKSis keyed byExportClientIdandPROVIDER_ICON_ALIASESby provider id. Same story forxiaomi-color.svgandxiaomi-mimo. That is three map rows plus a guard, and the guard is what makes the class of gap visible next time.The other 35 get two parallel Aside sourcing lanes. Every registry entry carries
baseUrlanddashboardUrl, so no lane has to guess where a vendor lives. Raster-only vendors get vectorized the same wayhermes-agent.svg(potrace) andgajae-code.svg(k-means colour layers) were.Docs only:
000roadmap plus decade docs010,020,030,040,050, one per implementation phase.The audit corrected three things in the painting doc rather than letting them reach implementation:
.provider-icontile withbackground: var(--raised)and a border, not on the page surface the client marks use. Contrast has to be measured against the tile.color: var(--text), so a mask branch costs one CSS rule and no new custom property..usage-source-mark--monousesfilter: invert(1)under a dark theme, applied to the samegrok.svgthe Integrations page just masked. Inverting is not equivalent to masking -- it maps #000 to #fff rather than to--text. wp5 either brings that call site onto the shared decision or documents why Usage differs; what it must not do is add a fourth spelling of the same idea.Verification
bun run privacy:scan-> passed. This is the gate that matters for adevlog/change.bun test tests/repo-hygiene.test.ts-> 12 pass.PROVIDER_REGISTRYandproviderIconSrcprogrammatically, not recalled.Docs only; nothing in the build, typecheck or test path reads from
devlog/.Checklist
bun run privacy:scancleanbun test tests/repo-hygiene.test.tsgreendevSummary by CodeRabbit