fix(mcp): real brand logos on MCP market tiles — via the brand-asset architecture - #1215

Merged
jackwener merged 1 commit into
mainfrom
fix/mcp-real-brand-logos
Jul 18, 2026
Merged

fix(mcp): real brand logos on MCP market tiles — via the brand-asset architecture#1215
jackwener merged 1 commit into
mainfrom
fix/mcp-real-brand-logos

Conversation

@jackwener

Copy link
Copy Markdown
Member

User pushback on #1205: famous brands (Figma/Notion/Slack…) obviously have famous logos — the text-mark convergence was the wrong direction. The governance rule stands (no hand-drawn inline SVG in component TSX); real logos ride the repo's established brand-asset architecture instead (provider-brand-marks precedent).

What shipped

  • Six official brand SVGs recovered byte-faithfully from git history (their pre-feat(icons+mcp): ban hand-drawn inline SVG repo-wide, polish the MCP page onto the house language #1205 inline markup at e48be52) into assets/mcp-brands/: slack, line, google-calendar, figma, vercel, supabase — wrapper attrs normalized to the provider-brands convention, path geometry untouched.
  • New McpBrandMark component following provider-brand-marks exactly: color marks render as , monochrome marks (Vercel ▲, LINE) via the currentColor mask technique (theme-adaptive: black in light, white in dark). Fallback to the existing text mark for brands without a faithful official asset (钉钉/飞书/Notion/macOS/…) — nothing hand-drawn or approximated.
  • Logo tiles switch to the quiet neutral plate (providerLogo recipe); unused per-brand tint tokens removed. feat(icons+mcp): ban hand-drawn inline SVG repo-wide, polish the MCP page onto the house language #1205's tile geometry/tabs/banner all kept.
  • Governance untouched and still green: the component contains zero inline literals (imports .svg assets), so no allowlist change — the ban and its rot-guard work exactly as designed.

Gates

Tree already contains main tip. desktop 2715/2715 · ui 190/190 · typecheck · check-dead-css · knip ×2 = 0 · alignment auditor all 10 fixtures clean. CDP light+dark before/after: real logos confirmed on all six tiles; maintainer visually accepted. Implemented by an opus worktree agent.

#1205 replaced the MCP market's official brand marks with generic text
marks (S / LINE / 31 / F / ▲ / S) — wrong direction. Famous brands must
show their real logos. This restores the six official marks using the
same architecture provider-brand-marks.tsx already established: vendored
.svg assets imported as URLs, rendered via <img> (color) or a currentColor
mask (monochrome), never inline hand-drawn <svg> in the component TSX.
- Recover Slack / LINE / Google Calendar / Figma / Vercel / Supabase SVGs
byte-faithfully from the pre-#1205 inline markup (commit e48be52) into
apps/desktop/src/renderer/assets/mcp-brands/*.svg.
- Add McpBrandMark + hasMcpBrandMark (mcp-brand-marks.tsx). Color marks
ride <img>; monochrome ▲/LINE ride a mask so they inherit the plate
foreground in light + dark. Brands without a faithful asset (钉钉/飞书/
Notion/macOS/…) keep the catalog text mark — no hand-drawn approximations.
- Wire McpCatalogCard (market + installed tiles) to McpBrandMark; branded
tiles drop the per-brand tint for a quiet neutral plate, matching how
.providerLogo treats color marks. Drop the now-unused brand tint tokens.
Governance: the component imports .svg assets (not .tsx <svg> literals), so
it needs no icon-governance inline-SVG allowlist entry. Tile polish from
#1205 is preserved; only the logo removal is reverted.
@jackwener
jackwener merged commit 1ab9ccd into mainJul 18, 2026
3 checks passed
jackwener added a commit that referenced this pull request Jul 18, 2026
Replace the #1215 vendored-asset approach (assets/mcp-brands/*.svg +
<img>/mask rendering) with per-icon simple-icons imports. Marks now
render as an inline <svg> mounting shell wrapping the library's <path>,
filled with the official brand hex in light theme. A pure luminance gate
flips near-black marks (Vercel/Notion/Slack) to currentColor on the dark
plate so they stay legible; the threshold is documented and unit-tested.
- add simple-icons@15.22.0 to apps/desktop (per-icon named ESM imports;
main renderer chunk grows only ~1.3KB — tree-shaking confirmed)
- Notion now renders a real library mark (was a text 'N')
- 钉钉/飞书 keep text marks: simple-icons carries no mark for them in any
release; macOS/filesystem/memory/… stay non-brand glyph/text by design
- allowlist mcp-brand-marks.tsx for inline SVG (library-sourced path
geometry, not hand-drawn) in the icon-governance contract
- delete vendored SVG assets + dead mask CSS/machinery
- extract luminance gate to mcp-brand-contrast.ts + add unit test
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@jackwener
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(mcp): real brand logos on MCP market tiles — via the brand-asset architecture - #1215

Merged
jackwener merged 1 commit into
mainfrom
fix/mcp-real-brand-logos
Jul 18, 2026
Merged

fix(mcp): real brand logos on MCP market tiles — via the brand-asset architecture#1215
jackwener merged 1 commit into
mainfrom
fix/mcp-real-brand-logos

Conversation

@jackwener

Copy link
Copy Markdown
Member

User pushback on #1205: famous brands (Figma/Notion/Slack…) obviously have famous logos — the text-mark convergence was the wrong direction. The governance rule stands (no hand-drawn inline SVG in component TSX); real logos ride the repo's established brand-asset architecture instead (provider-brand-marks precedent).

What shipped

  • Six official brand SVGs recovered byte-faithfully from git history (their pre-feat(icons+mcp): ban hand-drawn inline SVG repo-wide, polish the MCP page onto the house language #1205 inline markup at e48be52) into assets/mcp-brands/: slack, line, google-calendar, figma, vercel, supabase — wrapper attrs normalized to the provider-brands convention, path geometry untouched.
  • New McpBrandMark component following provider-brand-marks exactly: color marks render as , monochrome marks (Vercel ▲, LINE) via the currentColor mask technique (theme-adaptive: black in light, white in dark). Fallback to the existing text mark for brands without a faithful official asset (钉钉/飞书/Notion/macOS/…) — nothing hand-drawn or approximated.
  • Logo tiles switch to the quiet neutral plate (providerLogo recipe); unused per-brand tint tokens removed. feat(icons+mcp): ban hand-drawn inline SVG repo-wide, polish the MCP page onto the house language #1205's tile geometry/tabs/banner all kept.
  • Governance untouched and still green: the component contains zero inline literals (imports .svg assets), so no allowlist change — the ban and its rot-guard work exactly as designed.

Gates

Tree already contains main tip. desktop 2715/2715 · ui 190/190 · typecheck · check-dead-css · knip ×2 = 0 · alignment auditor all 10 fixtures clean. CDP light+dark before/after: real logos confirmed on all six tiles; maintainer visually accepted. Implemented by an opus worktree agent.

#1205 replaced the MCP market's official brand marks with generic text
marks (S / LINE / 31 / F / ▲ / S) — wrong direction. Famous brands must
show their real logos. This restores the six official marks using the
same architecture provider-brand-marks.tsx already established: vendored
.svg assets imported as URLs, rendered via <img> (color) or a currentColor
mask (monochrome), never inline hand-drawn <svg> in the component TSX.
- Recover Slack / LINE / Google Calendar / Figma / Vercel / Supabase SVGs
byte-faithfully from the pre-#1205 inline markup (commit e48be52) into
apps/desktop/src/renderer/assets/mcp-brands/*.svg.
- Add McpBrandMark + hasMcpBrandMark (mcp-brand-marks.tsx). Color marks
ride <img>; monochrome ▲/LINE ride a mask so they inherit the plate
foreground in light + dark. Brands without a faithful asset (钉钉/飞书/
Notion/macOS/…) keep the catalog text mark — no hand-drawn approximations.
- Wire McpCatalogCard (market + installed tiles) to McpBrandMark; branded
tiles drop the per-brand tint for a quiet neutral plate, matching how
.providerLogo treats color marks. Drop the now-unused brand tint tokens.
Governance: the component imports .svg assets (not .tsx <svg> literals), so
it needs no icon-governance inline-SVG allowlist entry. Tile polish from
#1205 is preserved; only the logo removal is reverted.
@jackwener
jackwener merged commit 1ab9ccd into mainJul 18, 2026
3 checks passed
jackwener added a commit that referenced this pull request Jul 18, 2026
Replace the #1215 vendored-asset approach (assets/mcp-brands/*.svg +
<img>/mask rendering) with per-icon simple-icons imports. Marks now
render as an inline <svg> mounting shell wrapping the library's <path>,
filled with the official brand hex in light theme. A pure luminance gate
flips near-black marks (Vercel/Notion/Slack) to currentColor on the dark
plate so they stay legible; the threshold is documented and unit-tested.
- add simple-icons@15.22.0 to apps/desktop (per-icon named ESM imports;
main renderer chunk grows only ~1.3KB — tree-shaking confirmed)
- Notion now renders a real library mark (was a text 'N')
- 钉钉/飞书 keep text marks: simple-icons carries no mark for them in any
release; macOS/filesystem/memory/… stay non-brand glyph/text by design
- allowlist mcp-brand-marks.tsx for inline SVG (library-sourced path
geometry, not hand-drawn) in the icon-governance contract
- delete vendored SVG assets + dead mask CSS/machinery
- extract luminance gate to mcp-brand-contrast.ts + add unit test
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@jackwener
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(mcp): real brand logos on MCP market tiles — via the brand-asset architecture - #1215

Merged
jackwener merged 1 commit into
mainfrom
fix/mcp-real-brand-logos
Jul 18, 2026
Merged

fix(mcp): real brand logos on MCP market tiles — via the brand-asset architecture#1215
jackwener merged 1 commit into
mainfrom
fix/mcp-real-brand-logos

Conversation

@jackwener

Copy link
Copy Markdown
Member

User pushback on #1205: famous brands (Figma/Notion/Slack…) obviously have famous logos — the text-mark convergence was the wrong direction. The governance rule stands (no hand-drawn inline SVG in component TSX); real logos ride the repo's established brand-asset architecture instead (provider-brand-marks precedent).

What shipped

  • Six official brand SVGs recovered byte-faithfully from git history (their pre-feat(icons+mcp): ban hand-drawn inline SVG repo-wide, polish the MCP page onto the house language #1205 inline markup at e48be52) into assets/mcp-brands/: slack, line, google-calendar, figma, vercel, supabase — wrapper attrs normalized to the provider-brands convention, path geometry untouched.
  • New McpBrandMark component following provider-brand-marks exactly: color marks render as , monochrome marks (Vercel ▲, LINE) via the currentColor mask technique (theme-adaptive: black in light, white in dark). Fallback to the existing text mark for brands without a faithful official asset (钉钉/飞书/Notion/macOS/…) — nothing hand-drawn or approximated.
  • Logo tiles switch to the quiet neutral plate (providerLogo recipe); unused per-brand tint tokens removed. feat(icons+mcp): ban hand-drawn inline SVG repo-wide, polish the MCP page onto the house language #1205's tile geometry/tabs/banner all kept.
  • Governance untouched and still green: the component contains zero inline literals (imports .svg assets), so no allowlist change — the ban and its rot-guard work exactly as designed.

Gates

Tree already contains main tip. desktop 2715/2715 · ui 190/190 · typecheck · check-dead-css · knip ×2 = 0 · alignment auditor all 10 fixtures clean. CDP light+dark before/after: real logos confirmed on all six tiles; maintainer visually accepted. Implemented by an opus worktree agent.

#1205 replaced the MCP market's official brand marks with generic text
marks (S / LINE / 31 / F / ▲ / S) — wrong direction. Famous brands must
show their real logos. This restores the six official marks using the
same architecture provider-brand-marks.tsx already established: vendored
.svg assets imported as URLs, rendered via <img> (color) or a currentColor
mask (monochrome), never inline hand-drawn <svg> in the component TSX.
- Recover Slack / LINE / Google Calendar / Figma / Vercel / Supabase SVGs
byte-faithfully from the pre-#1205 inline markup (commit e48be52) into
apps/desktop/src/renderer/assets/mcp-brands/*.svg.
- Add McpBrandMark + hasMcpBrandMark (mcp-brand-marks.tsx). Color marks
ride <img>; monochrome ▲/LINE ride a mask so they inherit the plate
foreground in light + dark. Brands without a faithful asset (钉钉/飞书/
Notion/macOS/…) keep the catalog text mark — no hand-drawn approximations.
- Wire McpCatalogCard (market + installed tiles) to McpBrandMark; branded
tiles drop the per-brand tint for a quiet neutral plate, matching how
.providerLogo treats color marks. Drop the now-unused brand tint tokens.
Governance: the component imports .svg assets (not .tsx <svg> literals), so
it needs no icon-governance inline-SVG allowlist entry. Tile polish from
#1205 is preserved; only the logo removal is reverted.
@jackwener
jackwener merged commit 1ab9ccd into mainJul 18, 2026
3 checks passed
jackwener added a commit that referenced this pull request Jul 18, 2026
Replace the #1215 vendored-asset approach (assets/mcp-brands/*.svg +
<img>/mask rendering) with per-icon simple-icons imports. Marks now
render as an inline <svg> mounting shell wrapping the library's <path>,
filled with the official brand hex in light theme. A pure luminance gate
flips near-black marks (Vercel/Notion/Slack) to currentColor on the dark
plate so they stay legible; the threshold is documented and unit-tested.
- add simple-icons@15.22.0 to apps/desktop (per-icon named ESM imports;
main renderer chunk grows only ~1.3KB — tree-shaking confirmed)
- Notion now renders a real library mark (was a text 'N')
- 钉钉/飞书 keep text marks: simple-icons carries no mark for them in any
release; macOS/filesystem/memory/… stay non-brand glyph/text by design
- allowlist mcp-brand-marks.tsx for inline SVG (library-sourced path
geometry, not hand-drawn) in the icon-governance contract
- delete vendored SVG assets + dead mask CSS/machinery
- extract luminance gate to mcp-brand-contrast.ts + add unit test
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@jackwener
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(mcp): real brand logos on MCP market tiles — via the brand-asset architecture - #1215

Merged
jackwener merged 1 commit into
mainfrom
fix/mcp-real-brand-logos
Jul 18, 2026
Merged

fix(mcp): real brand logos on MCP market tiles — via the brand-asset architecture#1215
jackwener merged 1 commit into
mainfrom
fix/mcp-real-brand-logos

Conversation

@jackwener

Copy link
Copy Markdown
Member

User pushback on #1205: famous brands (Figma/Notion/Slack…) obviously have famous logos — the text-mark convergence was the wrong direction. The governance rule stands (no hand-drawn inline SVG in component TSX); real logos ride the repo's established brand-asset architecture instead (provider-brand-marks precedent).

What shipped

  • Six official brand SVGs recovered byte-faithfully from git history (their pre-feat(icons+mcp): ban hand-drawn inline SVG repo-wide, polish the MCP page onto the house language #1205 inline markup at e48be52) into assets/mcp-brands/: slack, line, google-calendar, figma, vercel, supabase — wrapper attrs normalized to the provider-brands convention, path geometry untouched.
  • New McpBrandMark component following provider-brand-marks exactly: color marks render as , monochrome marks (Vercel ▲, LINE) via the currentColor mask technique (theme-adaptive: black in light, white in dark). Fallback to the existing text mark for brands without a faithful official asset (钉钉/飞书/Notion/macOS/…) — nothing hand-drawn or approximated.
  • Logo tiles switch to the quiet neutral plate (providerLogo recipe); unused per-brand tint tokens removed. feat(icons+mcp): ban hand-drawn inline SVG repo-wide, polish the MCP page onto the house language #1205's tile geometry/tabs/banner all kept.
  • Governance untouched and still green: the component contains zero inline literals (imports .svg assets), so no allowlist change — the ban and its rot-guard work exactly as designed.

Gates

Tree already contains main tip. desktop 2715/2715 · ui 190/190 · typecheck · check-dead-css · knip ×2 = 0 · alignment auditor all 10 fixtures clean. CDP light+dark before/after: real logos confirmed on all six tiles; maintainer visually accepted. Implemented by an opus worktree agent.

#1205 replaced the MCP market's official brand marks with generic text
marks (S / LINE / 31 / F / ▲ / S) — wrong direction. Famous brands must
show their real logos. This restores the six official marks using the
same architecture provider-brand-marks.tsx already established: vendored
.svg assets imported as URLs, rendered via <img> (color) or a currentColor
mask (monochrome), never inline hand-drawn <svg> in the component TSX.
- Recover Slack / LINE / Google Calendar / Figma / Vercel / Supabase SVGs
byte-faithfully from the pre-#1205 inline markup (commit e48be52) into
apps/desktop/src/renderer/assets/mcp-brands/*.svg.
- Add McpBrandMark + hasMcpBrandMark (mcp-brand-marks.tsx). Color marks
ride <img>; monochrome ▲/LINE ride a mask so they inherit the plate
foreground in light + dark. Brands without a faithful asset (钉钉/飞书/
Notion/macOS/…) keep the catalog text mark — no hand-drawn approximations.
- Wire McpCatalogCard (market + installed tiles) to McpBrandMark; branded
tiles drop the per-brand tint for a quiet neutral plate, matching how
.providerLogo treats color marks. Drop the now-unused brand tint tokens.
Governance: the component imports .svg assets (not .tsx <svg> literals), so
it needs no icon-governance inline-SVG allowlist entry. Tile polish from
#1205 is preserved; only the logo removal is reverted.
@jackwener
jackwener merged commit 1ab9ccd into mainJul 18, 2026
3 checks passed
jackwener added a commit that referenced this pull request Jul 18, 2026
Replace the #1215 vendored-asset approach (assets/mcp-brands/*.svg +
<img>/mask rendering) with per-icon simple-icons imports. Marks now
render as an inline <svg> mounting shell wrapping the library's <path>,
filled with the official brand hex in light theme. A pure luminance gate
flips near-black marks (Vercel/Notion/Slack) to currentColor on the dark
plate so they stay legible; the threshold is documented and unit-tested.
- add simple-icons@15.22.0 to apps/desktop (per-icon named ESM imports;
main renderer chunk grows only ~1.3KB — tree-shaking confirmed)
- Notion now renders a real library mark (was a text 'N')
- 钉钉/飞书 keep text marks: simple-icons carries no mark for them in any
release; macOS/filesystem/memory/… stay non-brand glyph/text by design
- allowlist mcp-brand-marks.tsx for inline SVG (library-sourced path
geometry, not hand-drawn) in the icon-governance contract
- delete vendored SVG assets + dead mask CSS/machinery
- extract luminance gate to mcp-brand-contrast.ts + add unit test
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@jackwener
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(mcp): real brand logos on MCP market tiles — via the brand-asset architecture - #1215

Merged
jackwener merged 1 commit into
mainfrom
fix/mcp-real-brand-logos
Jul 18, 2026
Merged

fix(mcp): real brand logos on MCP market tiles — via the brand-asset architecture#1215
jackwener merged 1 commit into
mainfrom
fix/mcp-real-brand-logos

Conversation

@jackwener

Copy link
Copy Markdown
Member

User pushback on #1205: famous brands (Figma/Notion/Slack…) obviously have famous logos — the text-mark convergence was the wrong direction. The governance rule stands (no hand-drawn inline SVG in component TSX); real logos ride the repo's established brand-asset architecture instead (provider-brand-marks precedent).

What shipped

  • Six official brand SVGs recovered byte-faithfully from git history (their pre-feat(icons+mcp): ban hand-drawn inline SVG repo-wide, polish the MCP page onto the house language #1205 inline markup at e48be52) into assets/mcp-brands/: slack, line, google-calendar, figma, vercel, supabase — wrapper attrs normalized to the provider-brands convention, path geometry untouched.
  • New McpBrandMark component following provider-brand-marks exactly: color marks render as , monochrome marks (Vercel ▲, LINE) via the currentColor mask technique (theme-adaptive: black in light, white in dark). Fallback to the existing text mark for brands without a faithful official asset (钉钉/飞书/Notion/macOS/…) — nothing hand-drawn or approximated.
  • Logo tiles switch to the quiet neutral plate (providerLogo recipe); unused per-brand tint tokens removed. feat(icons+mcp): ban hand-drawn inline SVG repo-wide, polish the MCP page onto the house language #1205's tile geometry/tabs/banner all kept.
  • Governance untouched and still green: the component contains zero inline literals (imports .svg assets), so no allowlist change — the ban and its rot-guard work exactly as designed.

Gates

Tree already contains main tip. desktop 2715/2715 · ui 190/190 · typecheck · check-dead-css · knip ×2 = 0 · alignment auditor all 10 fixtures clean. CDP light+dark before/after: real logos confirmed on all six tiles; maintainer visually accepted. Implemented by an opus worktree agent.

#1205 replaced the MCP market's official brand marks with generic text
marks (S / LINE / 31 / F / ▲ / S) — wrong direction. Famous brands must
show their real logos. This restores the six official marks using the
same architecture provider-brand-marks.tsx already established: vendored
.svg assets imported as URLs, rendered via <img> (color) or a currentColor
mask (monochrome), never inline hand-drawn <svg> in the component TSX.
- Recover Slack / LINE / Google Calendar / Figma / Vercel / Supabase SVGs
byte-faithfully from the pre-#1205 inline markup (commit e48be52) into
apps/desktop/src/renderer/assets/mcp-brands/*.svg.
- Add McpBrandMark + hasMcpBrandMark (mcp-brand-marks.tsx). Color marks
ride <img>; monochrome ▲/LINE ride a mask so they inherit the plate
foreground in light + dark. Brands without a faithful asset (钉钉/飞书/
Notion/macOS/…) keep the catalog text mark — no hand-drawn approximations.
- Wire McpCatalogCard (market + installed tiles) to McpBrandMark; branded
tiles drop the per-brand tint for a quiet neutral plate, matching how
.providerLogo treats color marks. Drop the now-unused brand tint tokens.
Governance: the component imports .svg assets (not .tsx <svg> literals), so
it needs no icon-governance inline-SVG allowlist entry. Tile polish from
#1205 is preserved; only the logo removal is reverted.
@jackwener
jackwener merged commit 1ab9ccd into mainJul 18, 2026
3 checks passed
jackwener added a commit that referenced this pull request Jul 18, 2026
Replace the #1215 vendored-asset approach (assets/mcp-brands/*.svg +
<img>/mask rendering) with per-icon simple-icons imports. Marks now
render as an inline <svg> mounting shell wrapping the library's <path>,
filled with the official brand hex in light theme. A pure luminance gate
flips near-black marks (Vercel/Notion/Slack) to currentColor on the dark
plate so they stay legible; the threshold is documented and unit-tested.
- add simple-icons@15.22.0 to apps/desktop (per-icon named ESM imports;
main renderer chunk grows only ~1.3KB — tree-shaking confirmed)
- Notion now renders a real library mark (was a text 'N')
- 钉钉/飞书 keep text marks: simple-icons carries no mark for them in any
release; macOS/filesystem/memory/… stay non-brand glyph/text by design
- allowlist mcp-brand-marks.tsx for inline SVG (library-sourced path
geometry, not hand-drawn) in the icon-governance contract
- delete vendored SVG assets + dead mask CSS/machinery
- extract luminance gate to mcp-brand-contrast.ts + add unit test
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@jackwener
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(mcp): real brand logos on MCP market tiles — via the brand-asset architecture - #1215

Merged
jackwener merged 1 commit into
mainfrom
fix/mcp-real-brand-logos
Jul 18, 2026
Merged

fix(mcp): real brand logos on MCP market tiles — via the brand-asset architecture#1215
jackwener merged 1 commit into
mainfrom
fix/mcp-real-brand-logos

Conversation

@jackwener

Copy link
Copy Markdown
Member

User pushback on #1205: famous brands (Figma/Notion/Slack…) obviously have famous logos — the text-mark convergence was the wrong direction. The governance rule stands (no hand-drawn inline SVG in component TSX); real logos ride the repo's established brand-asset architecture instead (provider-brand-marks precedent).

What shipped

  • Six official brand SVGs recovered byte-faithfully from git history (their pre-feat(icons+mcp): ban hand-drawn inline SVG repo-wide, polish the MCP page onto the house language #1205 inline markup at e48be52) into assets/mcp-brands/: slack, line, google-calendar, figma, vercel, supabase — wrapper attrs normalized to the provider-brands convention, path geometry untouched.
  • New McpBrandMark component following provider-brand-marks exactly: color marks render as , monochrome marks (Vercel ▲, LINE) via the currentColor mask technique (theme-adaptive: black in light, white in dark). Fallback to the existing text mark for brands without a faithful official asset (钉钉/飞书/Notion/macOS/…) — nothing hand-drawn or approximated.
  • Logo tiles switch to the quiet neutral plate (providerLogo recipe); unused per-brand tint tokens removed. feat(icons+mcp): ban hand-drawn inline SVG repo-wide, polish the MCP page onto the house language #1205's tile geometry/tabs/banner all kept.
  • Governance untouched and still green: the component contains zero inline literals (imports .svg assets), so no allowlist change — the ban and its rot-guard work exactly as designed.

Gates

Tree already contains main tip. desktop 2715/2715 · ui 190/190 · typecheck · check-dead-css · knip ×2 = 0 · alignment auditor all 10 fixtures clean. CDP light+dark before/after: real logos confirmed on all six tiles; maintainer visually accepted. Implemented by an opus worktree agent.

#1205 replaced the MCP market's official brand marks with generic text
marks (S / LINE / 31 / F / ▲ / S) — wrong direction. Famous brands must
show their real logos. This restores the six official marks using the
same architecture provider-brand-marks.tsx already established: vendored
.svg assets imported as URLs, rendered via <img> (color) or a currentColor
mask (monochrome), never inline hand-drawn <svg> in the component TSX.
- Recover Slack / LINE / Google Calendar / Figma / Vercel / Supabase SVGs
byte-faithfully from the pre-#1205 inline markup (commit e48be52) into
apps/desktop/src/renderer/assets/mcp-brands/*.svg.
- Add McpBrandMark + hasMcpBrandMark (mcp-brand-marks.tsx). Color marks
ride <img>; monochrome ▲/LINE ride a mask so they inherit the plate
foreground in light + dark. Brands without a faithful asset (钉钉/飞书/
Notion/macOS/…) keep the catalog text mark — no hand-drawn approximations.
- Wire McpCatalogCard (market + installed tiles) to McpBrandMark; branded
tiles drop the per-brand tint for a quiet neutral plate, matching how
.providerLogo treats color marks. Drop the now-unused brand tint tokens.
Governance: the component imports .svg assets (not .tsx <svg> literals), so
it needs no icon-governance inline-SVG allowlist entry. Tile polish from
#1205 is preserved; only the logo removal is reverted.
@jackwener
jackwener merged commit 1ab9ccd into mainJul 18, 2026
3 checks passed
jackwener added a commit that referenced this pull request Jul 18, 2026
Replace the #1215 vendored-asset approach (assets/mcp-brands/*.svg +
<img>/mask rendering) with per-icon simple-icons imports. Marks now
render as an inline <svg> mounting shell wrapping the library's <path>,
filled with the official brand hex in light theme. A pure luminance gate
flips near-black marks (Vercel/Notion/Slack) to currentColor on the dark
plate so they stay legible; the threshold is documented and unit-tested.
- add simple-icons@15.22.0 to apps/desktop (per-icon named ESM imports;
main renderer chunk grows only ~1.3KB — tree-shaking confirmed)
- Notion now renders a real library mark (was a text 'N')
- 钉钉/飞书 keep text marks: simple-icons carries no mark for them in any
release; macOS/filesystem/memory/… stay non-brand glyph/text by design
- allowlist mcp-brand-marks.tsx for inline SVG (library-sourced path
geometry, not hand-drawn) in the icon-governance contract
- delete vendored SVG assets + dead mask CSS/machinery
- extract luminance gate to mcp-brand-contrast.ts + add unit test
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@jackwener
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(mcp): real brand logos on MCP market tiles — via the brand-asset architecture - #1215

Merged
jackwener merged 1 commit into
mainfrom
fix/mcp-real-brand-logos
Jul 18, 2026
Merged

fix(mcp): real brand logos on MCP market tiles — via the brand-asset architecture#1215
jackwener merged 1 commit into
mainfrom
fix/mcp-real-brand-logos

Conversation

@jackwener

Copy link
Copy Markdown
Member

User pushback on #1205: famous brands (Figma/Notion/Slack…) obviously have famous logos — the text-mark convergence was the wrong direction. The governance rule stands (no hand-drawn inline SVG in component TSX); real logos ride the repo's established brand-asset architecture instead (provider-brand-marks precedent).

What shipped

  • Six official brand SVGs recovered byte-faithfully from git history (their pre-feat(icons+mcp): ban hand-drawn inline SVG repo-wide, polish the MCP page onto the house language #1205 inline markup at e48be52) into assets/mcp-brands/: slack, line, google-calendar, figma, vercel, supabase — wrapper attrs normalized to the provider-brands convention, path geometry untouched.
  • New McpBrandMark component following provider-brand-marks exactly: color marks render as , monochrome marks (Vercel ▲, LINE) via the currentColor mask technique (theme-adaptive: black in light, white in dark). Fallback to the existing text mark for brands without a faithful official asset (钉钉/飞书/Notion/macOS/…) — nothing hand-drawn or approximated.
  • Logo tiles switch to the quiet neutral plate (providerLogo recipe); unused per-brand tint tokens removed. feat(icons+mcp): ban hand-drawn inline SVG repo-wide, polish the MCP page onto the house language #1205's tile geometry/tabs/banner all kept.
  • Governance untouched and still green: the component contains zero inline literals (imports .svg assets), so no allowlist change — the ban and its rot-guard work exactly as designed.

Gates

Tree already contains main tip. desktop 2715/2715 · ui 190/190 · typecheck · check-dead-css · knip ×2 = 0 · alignment auditor all 10 fixtures clean. CDP light+dark before/after: real logos confirmed on all six tiles; maintainer visually accepted. Implemented by an opus worktree agent.

#1205 replaced the MCP market's official brand marks with generic text
marks (S / LINE / 31 / F / ▲ / S) — wrong direction. Famous brands must
show their real logos. This restores the six official marks using the
same architecture provider-brand-marks.tsx already established: vendored
.svg assets imported as URLs, rendered via <img> (color) or a currentColor
mask (monochrome), never inline hand-drawn <svg> in the component TSX.
- Recover Slack / LINE / Google Calendar / Figma / Vercel / Supabase SVGs
byte-faithfully from the pre-#1205 inline markup (commit e48be52) into
apps/desktop/src/renderer/assets/mcp-brands/*.svg.
- Add McpBrandMark + hasMcpBrandMark (mcp-brand-marks.tsx). Color marks
ride <img>; monochrome ▲/LINE ride a mask so they inherit the plate
foreground in light + dark. Brands without a faithful asset (钉钉/飞书/
Notion/macOS/…) keep the catalog text mark — no hand-drawn approximations.
- Wire McpCatalogCard (market + installed tiles) to McpBrandMark; branded
tiles drop the per-brand tint for a quiet neutral plate, matching how
.providerLogo treats color marks. Drop the now-unused brand tint tokens.
Governance: the component imports .svg assets (not .tsx <svg> literals), so
it needs no icon-governance inline-SVG allowlist entry. Tile polish from
#1205 is preserved; only the logo removal is reverted.
@jackwener
jackwener merged commit 1ab9ccd into mainJul 18, 2026
3 checks passed
jackwener added a commit that referenced this pull request Jul 18, 2026
Replace the #1215 vendored-asset approach (assets/mcp-brands/*.svg +
<img>/mask rendering) with per-icon simple-icons imports. Marks now
render as an inline <svg> mounting shell wrapping the library's <path>,
filled with the official brand hex in light theme. A pure luminance gate
flips near-black marks (Vercel/Notion/Slack) to currentColor on the dark
plate so they stay legible; the threshold is documented and unit-tested.
- add simple-icons@15.22.0 to apps/desktop (per-icon named ESM imports;
main renderer chunk grows only ~1.3KB — tree-shaking confirmed)
- Notion now renders a real library mark (was a text 'N')
- 钉钉/飞书 keep text marks: simple-icons carries no mark for them in any
release; macOS/filesystem/memory/… stay non-brand glyph/text by design
- allowlist mcp-brand-marks.tsx for inline SVG (library-sourced path
geometry, not hand-drawn) in the icon-governance contract
- delete vendored SVG assets + dead mask CSS/machinery
- extract luminance gate to mcp-brand-contrast.ts + add unit test
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@jackwener
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(mcp): real brand logos on MCP market tiles — via the brand-asset architecture - #1215

Merged
jackwener merged 1 commit into
mainfrom
fix/mcp-real-brand-logos
Jul 18, 2026
Merged

fix(mcp): real brand logos on MCP market tiles — via the brand-asset architecture#1215
jackwener merged 1 commit into
mainfrom
fix/mcp-real-brand-logos

Conversation

@jackwener

Copy link
Copy Markdown
Member

User pushback on #1205: famous brands (Figma/Notion/Slack…) obviously have famous logos — the text-mark convergence was the wrong direction. The governance rule stands (no hand-drawn inline SVG in component TSX); real logos ride the repo's established brand-asset architecture instead (provider-brand-marks precedent).

What shipped

  • Six official brand SVGs recovered byte-faithfully from git history (their pre-feat(icons+mcp): ban hand-drawn inline SVG repo-wide, polish the MCP page onto the house language #1205 inline markup at e48be52) into assets/mcp-brands/: slack, line, google-calendar, figma, vercel, supabase — wrapper attrs normalized to the provider-brands convention, path geometry untouched.
  • New McpBrandMark component following provider-brand-marks exactly: color marks render as , monochrome marks (Vercel ▲, LINE) via the currentColor mask technique (theme-adaptive: black in light, white in dark). Fallback to the existing text mark for brands without a faithful official asset (钉钉/飞书/Notion/macOS/…) — nothing hand-drawn or approximated.
  • Logo tiles switch to the quiet neutral plate (providerLogo recipe); unused per-brand tint tokens removed. feat(icons+mcp): ban hand-drawn inline SVG repo-wide, polish the MCP page onto the house language #1205's tile geometry/tabs/banner all kept.
  • Governance untouched and still green: the component contains zero inline literals (imports .svg assets), so no allowlist change — the ban and its rot-guard work exactly as designed.

Gates

Tree already contains main tip. desktop 2715/2715 · ui 190/190 · typecheck · check-dead-css · knip ×2 = 0 · alignment auditor all 10 fixtures clean. CDP light+dark before/after: real logos confirmed on all six tiles; maintainer visually accepted. Implemented by an opus worktree agent.

#1205 replaced the MCP market's official brand marks with generic text
marks (S / LINE / 31 / F / ▲ / S) — wrong direction. Famous brands must
show their real logos. This restores the six official marks using the
same architecture provider-brand-marks.tsx already established: vendored
.svg assets imported as URLs, rendered via <img> (color) or a currentColor
mask (monochrome), never inline hand-drawn <svg> in the component TSX.
- Recover Slack / LINE / Google Calendar / Figma / Vercel / Supabase SVGs
byte-faithfully from the pre-#1205 inline markup (commit e48be52) into
apps/desktop/src/renderer/assets/mcp-brands/*.svg.
- Add McpBrandMark + hasMcpBrandMark (mcp-brand-marks.tsx). Color marks
ride <img>; monochrome ▲/LINE ride a mask so they inherit the plate
foreground in light + dark. Brands without a faithful asset (钉钉/飞书/
Notion/macOS/…) keep the catalog text mark — no hand-drawn approximations.
- Wire McpCatalogCard (market + installed tiles) to McpBrandMark; branded
tiles drop the per-brand tint for a quiet neutral plate, matching how
.providerLogo treats color marks. Drop the now-unused brand tint tokens.
Governance: the component imports .svg assets (not .tsx <svg> literals), so
it needs no icon-governance inline-SVG allowlist entry. Tile polish from
#1205 is preserved; only the logo removal is reverted.
@jackwener
jackwener merged commit 1ab9ccd into mainJul 18, 2026
3 checks passed
jackwener added a commit that referenced this pull request Jul 18, 2026
Replace the #1215 vendored-asset approach (assets/mcp-brands/*.svg +
<img>/mask rendering) with per-icon simple-icons imports. Marks now
render as an inline <svg> mounting shell wrapping the library's <path>,
filled with the official brand hex in light theme. A pure luminance gate
flips near-black marks (Vercel/Notion/Slack) to currentColor on the dark
plate so they stay legible; the threshold is documented and unit-tested.
- add simple-icons@15.22.0 to apps/desktop (per-icon named ESM imports;
main renderer chunk grows only ~1.3KB — tree-shaking confirmed)
- Notion now renders a real library mark (was a text 'N')
- 钉钉/飞书 keep text marks: simple-icons carries no mark for them in any
release; macOS/filesystem/memory/… stay non-brand glyph/text by design
- allowlist mcp-brand-marks.tsx for inline SVG (library-sourced path
geometry, not hand-drawn) in the icon-governance contract
- delete vendored SVG assets + dead mask CSS/machinery
- extract luminance gate to mcp-brand-contrast.ts + add unit test
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@jackwener