mirror of
https://github.com/backnotprop/plannotator.git
synced 2026-09-14 14:17:26 +08:00
feat: add favicon (Purple P + gold highlight) (#312)
* feat: add favicon (option 2 — purple P with gold highlight) Adds the "Purple P + Highlight" favicon across all three Plannotator servers (plan, review, annotate). The icon is a rounded purple square with a bold white "P" and a semi-transparent gold stripe through the middle — typographic, on-brand, and legible at 16px. Implementation: - shared-handlers.ts: handleFavicon() serves the inline SVG with a 1-day cache header, shared by all servers - index.ts, review.ts, annotate.ts: /favicon.svg route added before the SPA catch-all - apps/hook/index.html, apps/review/index.html: <link rel="icon"> added pointing to /favicon.svg SVG favicons are the modern standard and render crisply at all sizes without a separate .ico file. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: add favicon to marketing site Use the same purple P + gold highlight SVG favicon on plannotator.ai. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Michael Ramos <mdramos8@gmail.com>
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
import { isRemoteSession, getServerPort } from "./remote";
|
||||
import { type DiffType, type GitContext, runGitDiff, getFileContentsForDiff, gitAddFile, gitResetFile, parseWorktreeDiffType, validateFilePath } from "./git";
|
||||
import { getRepoInfo } from "./repo";
|
||||
import { handleImage, handleUpload, handleAgents, handleServerReady, handleDraftSave, handleDraftLoad, handleDraftDelete, type OpencodeClient } from "./shared-handlers";
|
||||
import { handleImage, handleUpload, handleAgents, handleServerReady, handleDraftSave, handleDraftLoad, handleDraftDelete, handleFavicon, type OpencodeClient } from "./shared-handlers";
|
||||
import { contentHash, deleteDraft } from "./draft";
|
||||
import { createEditorAnnotationHandler } from "./editor-annotations";
|
||||
|
||||
@@ -284,6 +284,9 @@ export async function startReviewServer(
|
||||
}
|
||||
}
|
||||
|
||||
// Favicon
|
||||
if (url.pathname === "/favicon.svg") return handleFavicon();
|
||||
|
||||
// Serve embedded HTML for all other routes (SPA)
|
||||
return new Response(htmlContent, {
|
||||
headers: { "Content-Type": "text/html" },
|
||||
|
||||
Reference in New Issue
Block a user