Compare commits

...

4 Commits

Author SHA1 Message Date
devops-engineer 8354121702 ci: re-trigger after #468 crawler-overload mitigation (RunnerService RPC p95 11741ms->1273ms, dispatch recovered); prior run dispatch-starved, code unchanged [no-op]
CI / Shellcheck (E2E scripts) (pull_request) Blocked by required conditions
CI / Python Lint & Test (pull_request) Blocked by required conditions
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 26s
CI / Detect changes (pull_request) Successful in 30s
E2E API Smoke Test / detect-changes (pull_request) Successful in 29s
E2E Chat / detect-changes (pull_request) Successful in 37s
Harness Replays / detect-changes (pull_request) Successful in 37s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 44s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 33s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 40s
gate-check-v3 / gate-check (pull_request) Successful in 27s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m54s
qa-review / approved (pull_request) Successful in 45s
security-review / approved (pull_request) Successful in 24s
sop-checklist / all-items-acked (pull_request) Successful in 30s
sop-tier-check / tier-check (pull_request) Successful in 28s
CI / Canvas (Next.js) (pull_request) Failing after 17m37s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / Platform (Go) (pull_request) Failing after 17m50s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 30s
E2E Chat / E2E Chat (pull_request) Failing after 12s
Harness Replays / Harness Replays (pull_request) Successful in 17s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 15s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 14s
CI / all-required (pull_request) Has been cancelled
2026-05-16 05:58:45 -07:00
devops-engineer 18487ac379 ci: fresh rerun — prior CI run orchestrator-wedged (Canvas Deploy Reminder stuck status=5, all-required blocked, no task materialized; storm-era run-graph corruption) [no-op]
qa-review / approved (pull_request) Successful in 46s
sop-tier-check / tier-check (pull_request) Successful in 36s
Block internal-flavored paths / Block forbidden paths (pull_request) Has been cancelled
CI / Platform (Go) (pull_request) Has been cancelled
CI / Shellcheck (E2E scripts) (pull_request) Has been cancelled
CI / Canvas Deploy Reminder (pull_request) Has been cancelled
CI / Python Lint & Test (pull_request) Has been cancelled
CI / all-required (pull_request) Has been cancelled
E2E API Smoke Test / E2E API Smoke Test (pull_request) Has been cancelled
E2E Chat / E2E Chat (pull_request) Has been cancelled
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Has been cancelled
Harness Replays / detect-changes (pull_request) Has been cancelled
Harness Replays / Harness Replays (pull_request) Has been cancelled
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Has been cancelled
Secret scan / Scan diff for credential-shaped strings (pull_request) Has been cancelled
CI / Detect changes (pull_request) Has been cancelled
CI / Canvas (Next.js) (pull_request) Has been cancelled
E2E API Smoke Test / detect-changes (pull_request) Has been cancelled
E2E Chat / detect-changes (pull_request) Has been cancelled
Handlers Postgres Integration / detect-changes (pull_request) Has been cancelled
lint-required-no-paths / lint-required-no-paths (pull_request) Has been cancelled
Runtime PR-Built Compatibility / detect-changes (pull_request) Has been cancelled
gate-check-v3 / gate-check (pull_request) Has been cancelled
security-review / approved (pull_request) Has been cancelled
sop-checklist / all-items-acked (pull_request) Has been cancelled
2026-05-16 03:42:00 -07:00
devops-engineer ec73fa52e7 ci: re-trigger CI on recovered runners (post data-root rollback 2026-05-16 09:54Z; prior checks stale-failed on pre-recovery 'blob not found' infra wall, not logic) [no-op]
CI / Canvas Deploy Reminder (pull_request) Blocked by required conditions
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 10s
CI / Detect changes (pull_request) Successful in 23s
E2E API Smoke Test / detect-changes (pull_request) Successful in 24s
E2E Chat / detect-changes (pull_request) Successful in 29s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 34s
Harness Replays / detect-changes (pull_request) Successful in 27s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 32s
gate-check-v3 / gate-check (pull_request) Successful in 28s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 59s
qa-review / approved (pull_request) Successful in 28s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m47s
security-review / approved (pull_request) Successful in 30s
sop-checklist / all-items-acked (pull_request) Successful in 26s
sop-tier-check / tier-check (pull_request) Successful in 31s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 10s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 13s
E2E Chat / E2E Chat (pull_request) Failing after 9s
CI / Python Lint & Test (pull_request) Successful in 30s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 8s
Harness Replays / Harness Replays (pull_request) Successful in 9s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 8s
CI / Canvas (Next.js) (pull_request) Successful in 17m49s
CI / Platform (Go) (pull_request) Successful in 19m5s
CI / all-required (pull_request) Has been cancelled
2026-05-16 03:16:14 -07:00
core-fe dc2af38437 perf(canvas): shrink Toolbar logo 1.3 MB → 2.2 KB + use next/image
Block internal-flavored paths / Block forbidden paths (pull_request) Failing after 1s
CI / Platform (Go) (pull_request) Failing after 0s
CI / Canvas (Next.js) (pull_request) Failing after 0s
CI / Detect changes (pull_request) Failing after 0s
E2E API Smoke Test / detect-changes (pull_request) Failing after 0s
CI / Shellcheck (E2E scripts) (pull_request) Has been skipped
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / Python Lint & Test (pull_request) Has been skipped
E2E Chat / detect-changes (pull_request) Failing after 0s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Has been skipped
Handlers Postgres Integration / detect-changes (pull_request) Failing after 0s
E2E Chat / E2E Chat (pull_request) Has been skipped
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Has been skipped
Harness Replays / detect-changes (pull_request) Failing after 0s
lint-required-no-paths / lint-required-no-paths (pull_request) Failing after 0s
Harness Replays / Harness Replays (pull_request) Has been skipped
Runtime PR-Built Compatibility / detect-changes (pull_request) Failing after 0s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Has been skipped
gate-check-v3 / gate-check (pull_request) Failing after 0s
qa-review / approved (pull_request) Failing after 0s
security-review / approved (pull_request) Failing after 0s
sop-checklist / all-items-acked (pull_request) Failing after 0s
sop-tier-check / tier-check (pull_request) Failing after 0s
CI / all-required (pull_request) Failing after 0s
Audit item #3. canvas/public/molecule-icon.png was a 1,301,237-byte
1024×1024 RGBA PNG rendered at 20×20 (w-5 h-5) via a raw <img> in
Toolbar.tsx:162 — a ~1.3 MB asset for a 20 px logo, fetched eagerly
with no optimization on every canvas load.

- Downscale the asset to 40×40 (2,220 bytes). 40 px source = 2× the
  20 px render box, so it stays crisp on HiDPI while well under the
  10 KB / ≤48 px target.
- Switch the single usage to next/image with explicit width={20}
  height={20} and the same `w-5 h-5` className — identical 20 px
  visual. `priority` because the toolbar logo is always above-the-fold
  (avoids a lazy-load flash for a tiny always-rendered asset) and
  silences the LCP-candidate warning.

Asset bytes: before 1,301,237 (1024×1024) → after 2,220 (40×40).
Reduction: 1,299,017 bytes (99.83%). `npm run build` clean (no
next/image warnings); full 3300-test vitest suite passes including
the Toolbar render test.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 02:30:29 -07:00
2 changed files with 9 additions and 1 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 2.2 KiB

+9 -1
View File
@@ -1,6 +1,7 @@
"use client";
import { useMemo, useState, useCallback, useEffect, useRef } from "react";
import Image from "next/image";
import { api } from "@/lib/api";
import { useCanvasStore } from "@/store/canvas";
import { SettingsButton } from "@/components/settings/SettingsButton";
@@ -159,7 +160,14 @@ export function Toolbar() {
>
{/* Logo / Title — title text drops on mobile to reclaim space */}
<div className="flex items-center gap-2 sm:pr-3 sm:border-r sm:border-line/60">
<img src="/molecule-icon.png" alt="Molecule AI" className="w-5 h-5" />
<Image
src="/molecule-icon.png"
alt="Molecule AI"
width={20}
height={20}
className="w-5 h-5"
priority
/>
<span className="hidden sm:inline text-[11px] font-semibold text-ink-mid tracking-wide">Molecule AI</span>
</div>