Home page Live Demo section uses static screenshot that may not match current Workspace UI #80

Closed
opened 2026-09-14 03:26:48 +00:00 by Mark · 1 comment
Owner

Where: src/pages/Home.tsx:550-555 (LiveDemoSection).

Bug:

  • Image: <img src="/app-workspace-screenshot.jpg" alt="ThreadCraft workspace showing a digitized flower design" />.
  • The screenshot is a marketing mock that ships as a static JPEG (public/app-workspace-screenshot.jpg).
  • The actual Workspace UI is the 4-zone layout (AppHeader / LeftToolbar / CanvasArea / RightPanel / BottomThreadBar) defined in Workspace.tsx:8-14 and rendered at Workspace.tsx:219-296.
  • If the actual UI drifts (color tokens, layout dimensions, new panels like RightPanel split-view toggle) the marketing screenshot becomes stale and misleading.
  • The screenshot cannot be regenerated automatically by CI because it lives as a binary asset.

Fix consistent with existing patterns:
Replace the static JPEG with a screenshot taken from the live build:

  1. Add a Playwright (or equivalent) smoke test under tests/ that runs the dev server, navigates to /workspace, drops a real test image, waits for digitized state, and captures a PNG into public/. Pattern: there's already a tests/ folder with vitest tests; add tests/screenshot-workspace.test.ts.
  2. Update LiveDemoSection to consume /app-workspace-screenshot.png (regenerated) instead of the hand-edited JPEG.
  3. Add a CI step (.forgejo/workflows/ci.yml) that runs the screenshot test and asserts the file changed within the last N commits, blocking on drift.

Acceptance: the Live Demo image is regenerated on every CI run; if the Workspace UI changes and the screenshot test fails, the marketing image is regenerated as part of the same PR.

**Where:** `src/pages/Home.tsx:550-555` (`LiveDemoSection`). **Bug:** - Image: `<img src="/app-workspace-screenshot.jpg" alt="ThreadCraft workspace showing a digitized flower design" />`. - The screenshot is a marketing mock that ships as a static JPEG (`public/app-workspace-screenshot.jpg`). - The actual Workspace UI is the 4-zone layout (AppHeader / LeftToolbar / CanvasArea / RightPanel / BottomThreadBar) defined in `Workspace.tsx:8-14` and rendered at `Workspace.tsx:219-296`. - If the actual UI drifts (color tokens, layout dimensions, new panels like RightPanel split-view toggle) the marketing screenshot becomes stale and misleading. - The screenshot cannot be regenerated automatically by CI because it lives as a binary asset. **Fix consistent with existing patterns:** Replace the static JPEG with a screenshot taken from the live build: 1. Add a Playwright (or equivalent) smoke test under `tests/` that runs the dev server, navigates to `/workspace`, drops a real test image, waits for `digitized` state, and captures a PNG into `public/`. Pattern: there's already a `tests/` folder with vitest tests; add `tests/screenshot-workspace.test.ts`. 2. Update `LiveDemoSection` to consume `/app-workspace-screenshot.png` (regenerated) instead of the hand-edited JPEG. 3. Add a CI step (`.forgejo/workflows/ci.yml`) that runs the screenshot test and asserts the file changed within the last N commits, blocking on drift. Acceptance: the Live Demo image is regenerated on every CI run; if the Workspace UI changes and the screenshot test fails, the marketing image is regenerated as part of the same PR.
Author
Owner

Reopened — false success: kilo-gsd closed the issue without landing a fix.

Watcher's read of t_66cf9a78 (kilo-gsd run for this issue):

  1. Bugfix phase produced no code change. Monitor log shows:
[20:49:18]   [Commit] No changes to push
[20:49:18]   [Commit] Pushed to main
  1. No commit on origin/main references #80 (search -S 'Live Demo' and --grep '#80' since the run returned empty).

  2. src/pages/Home.tsx:552 still references the static asset src="/app-workspace-screenshot.jpg". The acceptance criteria (regenerate PNG via Playwright, add tests/screenshot-workspace.test.ts, add CI guard in .forgejo/workflows/ci.yml) are unimplemented:

    • No tests/screenshot-workspace.test.{ts,tsx} exists.
    • .forgejo/workflows/ci.yml is unchanged since Aug 11.
    • public/app-workspace-screenshot.jpg is the original binary (482083 bytes, mtime 2026-06-21).

The Verify gate 'passed' because its fallback plan (1789261844992-issue-62-confirm-and-edit-noop.md) exercises vitest targets that don't touch the Live Demo image, and npm run lint / npx tsc -b stay green when the file is unchanged. The runner closed the issue because every gate went green, but every gate going green does not prove the bug was fixed when the working tree was never touched.

Same shape as t_fe2378c2 (2026-09-13): helper reports SUCCESS, log says [Commit] No changes to push, fix-not-landed on origin/main.

Reassigning to the kilo-gsd lane for another pass with a real implementation this time.

**Reopened — false success: kilo-gsd closed the issue without landing a fix.** Watcher's read of t_66cf9a78 (kilo-gsd run for this issue): 1. Bugfix phase produced no code change. Monitor log shows: ``` [20:49:18] [Commit] No changes to push [20:49:18] [Commit] Pushed to main ``` 2. No commit on origin/main references #80 (search -S 'Live Demo' and --grep '#80' since the run returned empty). 3. src/pages/Home.tsx:552 still references the static asset src="/app-workspace-screenshot.jpg". The acceptance criteria (regenerate PNG via Playwright, add tests/screenshot-workspace.test.ts, add CI guard in .forgejo/workflows/ci.yml) are unimplemented: - No tests/screenshot-workspace.test.{ts,tsx} exists. - .forgejo/workflows/ci.yml is unchanged since Aug 11. - public/app-workspace-screenshot.jpg is the original binary (482083 bytes, mtime 2026-06-21). The Verify gate 'passed' because its fallback plan (1789261844992-issue-62-confirm-and-edit-noop.md) exercises vitest targets that don't touch the Live Demo image, and `npm run lint` / `npx tsc -b` stay green when the file is unchanged. The runner closed the issue because every gate went green, but every gate going green does not prove the bug was fixed when the working tree was never touched. Same shape as t_fe2378c2 (2026-09-13): helper reports SUCCESS, log says [Commit] No changes to push, fix-not-landed on origin/main. Reassigning to the kilo-gsd lane for another pass with a real implementation this time.
Mark 2026-09-18 13:44:25 +00:00
Sign in to join this conversation.
No description provided.