feat: persona-specific favicon + fix favicon.ico 404
app.js updates the <link rel="icon"> to the active persona's emoji on load (CORTEX_EMOJI is already injected server-side). /favicon.ico route added as a fallback for login/settings/help pages that don't have persona context. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -62,6 +62,20 @@ def _first_persona(username: str) -> str | None:
|
|||||||
return names[0] if names else None
|
return names[0] if names else None
|
||||||
|
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
# Favicon — default sparkle; persona pages override via JS
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
_FAVICON_SVG = (
|
||||||
|
"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'>"
|
||||||
|
"<text y='.9em' font-size='90'>✨</text></svg>"
|
||||||
|
)
|
||||||
|
|
||||||
|
@router.get("/favicon.ico", include_in_schema=False)
|
||||||
|
async def favicon():
|
||||||
|
return Response(content=_FAVICON_SVG, media_type="image/svg+xml")
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Root redirect
|
# Root redirect
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -32,6 +32,15 @@
|
|||||||
|
|
||||||
if (headerEmoji) headerEmoji.textContent = CORTEX_EMOJI;
|
if (headerEmoji) headerEmoji.textContent = CORTEX_EMOJI;
|
||||||
|
|
||||||
|
// Set favicon to persona emoji
|
||||||
|
{
|
||||||
|
const favicon = document.querySelector("link[rel='icon']");
|
||||||
|
if (favicon && CORTEX_EMOJI) {
|
||||||
|
const svg = `<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>${CORTEX_EMOJI}</text></svg>`;
|
||||||
|
favicon.href = `data:image/svg+xml,${encodeURIComponent(svg)}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Wire help link to preserve current persona on return
|
// Wire help link to preserve current persona on return
|
||||||
const helpLink = document.getElementById('help-link');
|
const helpLink = document.getElementById('help-link');
|
||||||
if (helpLink) helpLink.href = `/help?persona=${encodeURIComponent(CORTEX_PERSONA)}`;
|
if (helpLink) helpLink.href = `/help?persona=${encodeURIComponent(CORTEX_PERSONA)}`;
|
||||||
|
|||||||
Reference in New Issue
Block a user