chore(07-06): land the quick-task 261024-001 logo-asset replacement residue

- /start sendPhoto now points at MASTER_FILE-arah2_logo.png (deployed
  from web/public/ — the untracked asset lands here so the reference
  resolves on deploy)
- README + AGENTS.md + the 4 mockup screens swapped the Stitch
  googleusercontent logo placeholder for the local master logo
- pre-existing on the tree through 07-03..07-05 execution; verified by
  this session's baselines (bot 126/126, web 165/165, captures 22/22)
This commit is contained in:
araharah-executor
2026-10-25 05:24:52 +08:00
parent 2489cca8ec
commit b7576c1b21
9 changed files with 212 additions and 13 deletions
+2 -2
View File
@@ -60,7 +60,7 @@ to.
## Key Dependencies
- `cdn.tailwindcss.com` — theming engine for all screens
- `fonts.googleapis.com` / `fonts.gstatic.com` — Geist, Space Grotesk, Material Symbols
- Mockup images are hosted/lifted from Google-hosted sample assets (`lh3.googleusercontent.com/aida/...` URLs appear in some screens' `<img>`/`src` attributes) — placeholders from the Stitch tooling, not project data
- Mockup images were originally hosted/lifted from Google-hosted sample assets (`lh3.googleusercontent.com/aida/...` placeholders in the Stitch output). The logo placeholder has been replaced with the local project logo (`assets/MASTER_FILE-arah2_logo.svg`); any remaining remote URLs are non-logo placeholders.
- Telegram Bot API — frontend transport (`IDEAS.md`: "Telegram-first")
- Neon Postgres + PostGIS — event/user storage (`IDEAS.md`)
- Routing engine: Valhalla + Photon are the validated stack per the project constraints; the OSRM references in older docs (`IDEAS.md`, `DESIGN.md`) are superseded
@@ -140,7 +140,7 @@ to.
- Each mockup screen is a **single self-contained HTML file** (`code.html`) with inline `<style>` and inline `<script>`. No shared CSS/JS modules, no bundler, no imports between screens.
- Styling is Tailwind via **CDN script** (`https://cdn.tailwindcss.com`) with a per-file inline `tailwind.config` object encoding the design tokens (colors, borderRadius, spacing). No Tailwind build step.
- Fonts and icons are loaded from CDNs: **Google Fonts** (Space Grotesk for headlines/telemetry, Geist for body) and **Material Symbols Outlined** for iconography.
- Imagery is either **inline SVG** (route vectors, directional glyphs drawn with `stroke-linecap="square"`) or **remote hosted URLs** (`lh3.googleusercontent.com/aida/...` logo images) — no local image assets besides `screen.png` captures.
- Imagery is either **inline SVG** (route vectors, directional glyphs drawn with `stroke-linecap="square"`), the local project logo (`assets/MASTER_FILE-arah2_logo.svg`), or legacy **remote hosted URLs** (`lh3.googleusercontent.com/aida/...` placeholders in the remaining mockups) — local image assets are limited to the logo and `screen.png` captures.
- The mockups remain inline-`onclick` demo stubs with no state management, but the real app interactivity lives in `web/` (Vite/TypeScript Mini App) and the `bot/` command handlers.
## Layers
- Presentation: `stitch_minimalist_route_navigator/*/code.html` — Tailwind markup + inline SVG + demo JS
+1 -1
View File
@@ -1,7 +1,7 @@
<!-- generated-by: gsd-doc-writer -->
<p align="center">
<img src="assets/logo_arah2.png" alt="arah² logo" width="140">
<img src="assets/MASTER_FILE-arah2_logo.svg" alt="arah² logo" width="140">
</p>
# arah²
+7 -6
View File
@@ -9,11 +9,12 @@
* payloads, no callback routes anywhere in this tree.
*
* Device-gate feedback (2026-10-24): /start now carries the app logo —
* sendPhoto by its STATIC-ASSET public URL (<MINI_APP_URL>/logo_arah2.png,
* deployed from web/public/). Telegram fetches it server-side; the repo
* asset stays the single source (assets/logo_arah2.png). Photo send is
* resilient: if the fetch/send fails (e.g. asset not deployed yet), the
* text reply still goes out — the greeting is never lost.
* sendPhoto by its STATIC-ASSET public URL
* (<MINI_APP_URL>/MASTER_FILE-arah2_logo.png, deployed from web/public/).
* The repo asset stays the single source
* (assets/MASTER_FILE-arah2_logo.png). Photo send is resilient: if the
* fetch/send fails (e.g. asset not deployed yet), the text reply still
* goes out — the greeting is never lost.
*
* All copy comes from src/i18n/strings.ts (D-05) — nothing inline here.
*/
@@ -32,7 +33,7 @@ export function startReplyText(locale: Locale): string {
export function startLogoUrl(origin: string | undefined): string | null {
if (!origin) return null;
try {
return `${new URL(origin).origin}/logo_arah2.png`;
return `${new URL(origin).origin}/MASTER_FILE-arah2_logo.png`;
} catch {
return null;
}
@@ -6,7 +6,7 @@
min-height: max(884px, 100dvh);
}
</style>
</head><body class="bg-surface text-on-surface font-body-md text-body-md antialiased selection:bg-signal-orange selection:text-matte-black min-h-screen flex flex-col"><header class="fixed top-0 w-full z-50 pt-safe bg-surface/90 backdrop-blur-xl shadow-[0_1px_8px_rgba(0,0,0,0.04)]"><div class="h-16 px-margin flex items-center justify-between gap-space-sm"><div class="flex items-center gap-space-xs shrink-0"><button aria-label="Navigate Return" class="w-11 h-11 flex items-center justify-center text-matte-black active:bg-chassis-subtle transition-colors" onclick="history.back()" type="button"><span class="material-symbols-outlined text-[20px]">arrow_back</span></button><img alt="Braun/Rams Minimal Nav Logo" class="h-8 w-auto object-contain" src="https://lh3.googleusercontent.com/aida/AEtjO1Wc3WyaK3B8IueuO6EP2NnBH_BJl2o4Kz75ks1llzB6uL6xUtP18_j3jIP9nLehEfcC14hkqm5g5Q4yqIEMuVxSAyrWOSQUFx-5VnxI4zoORQ3mTwY6SpwuTuP2tItiSpcLnZS-f2uQ7lj-2lU1RzUvIxZwEULVNh-MByJ2ItXnd1890uYI8dMRkRaNvGOsRxvp1tUz9Ubg1eYqRKfEhngaWHtawijzCV2ggv9Ldr3iZ00PIgzGdwugcCg"/><div class="flex flex-col ml-1"><span class="font-headline-sm text-headline-sm tracking-tight font-bold text-matte-black uppercase truncate">Active Route Guidance</span><span class="font-label-sm text-label-sm uppercase tracking-widest text-on-surface-variant font-mono">SEC-STACK // EXEC</span></div></div><div class="flex items-center gap-space-xs shrink-0"><div class="w-8 h-8 rounded-full bg-primary flex items-center justify-center"><span class="material-symbols-outlined text-on-primary text-[18px]">person</span></div></div></div></header><main class="flex-1 flex flex-col relative w-full pt-16 bg-surface"><div class="flex flex-col w-full pb-safe">
</head><body class="bg-surface text-on-surface font-body-md text-body-md antialiased selection:bg-signal-orange selection:text-matte-black min-h-screen flex flex-col"><header class="fixed top-0 w-full z-50 pt-safe bg-surface/90 backdrop-blur-xl shadow-[0_1px_8px_rgba(0,0,0,0.04)]"><div class="h-16 px-margin flex items-center justify-between gap-space-sm"><div class="flex items-center gap-space-xs shrink-0"><button aria-label="Navigate Return" class="w-11 h-11 flex items-center justify-center text-matte-black active:bg-chassis-subtle transition-colors" onclick="history.back()" type="button"><span class="material-symbols-outlined text-[20px]">arrow_back</span></button><img alt="arah² logo" class="h-8 w-auto object-contain" src="../../assets/MASTER_FILE-arah2_logo.svg"/><div class="flex flex-col ml-1"><span class="font-headline-sm text-headline-sm tracking-tight font-bold text-matte-black uppercase truncate">Active Route Guidance</span><span class="font-label-sm text-label-sm uppercase tracking-widest text-on-surface-variant font-mono">SEC-STACK // EXEC</span></div></div><div class="flex items-center gap-space-xs shrink-0"><div class="w-8 h-8 rounded-full bg-primary flex items-center justify-center"><span class="material-symbols-outlined text-on-primary text-[18px]">person</span></div></div></div></header><main class="flex-1 flex flex-col relative w-full pt-16 bg-surface"><div class="flex flex-col w-full pb-safe">
<!-- Turn-by-Turn Maneuver HUD (Matte Black Primary Chassis) -->
<section class="w-full bg-matte-black text-soft-beige px-margin py-space-md">
<div class="flex items-start justify-between gap-space-md">
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 696 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 29 KiB