config/projects/snapapi/memory/bugs.md
Hoid 92947c7712 CEO-BASE: add verification rules, file BUG-080 (landing page not updated)
General lessons added to base prompt:
- User-facing material must reflect actual software state
- Verify live output before reporting completion
- Never bump version without checking user-visible changes
- Sub-agent work must be verified before reporting to investor
2026-02-20 08:05:18 +00:00

2.9 KiB

SnapAPI Bug Tracker

Fixed

BUG-001: Key cache not shared across pods (HIGH) — FIXED v0.1.1

  • Found: Session 2
  • Impact: ~50% of screenshot requests fail with 403 after signup when 2+ replicas
  • Fix: Cache-aside pattern — check DB when key not in memory cache
  • Verified: 6/6 requests succeed after signup on 2-replica prod deployment

BUG-004: CSP blocks all inline event handlers (CRITICAL) — FIXED v0.2.3

  • Found: Session 4 (investor-reported)
  • Impact: ALL interactive functionality broken — signup modal, playground, mobile nav, FAQ toggles
  • Root cause: Helmet's default CSP includes script-src-attr 'none' which blocks onclick/onsubmit handlers
  • Fix: Added scriptSrcAttr: ["'unsafe-inline'"] to helmet CSP config
  • Verified: Signup modal opens, API key generated, playground takes screenshots, mobile nav works

BUG-005: Mobile nav has no CSS for .show class (HIGH) — FIXED v0.2.3

  • Found: Session 4 (investor-reported)
  • Impact: Hamburger menu toggle did nothing — nav links invisible on mobile
  • Root cause: CSS had display:none for .nav-links on mobile but no rule for .nav-links.show
  • Fix: Added .nav-links.show{display:flex; flex-direction:column; ...} with absolute positioning
  • Verified: Hamburger opens/closes menu, links visible and clickable

BUG-006: Signup buttons use href="#" causing scroll (MEDIUM) — FIXED v0.2.3

  • Found: Session 4 (investor-reported)
  • Impact: Clicking "Get Free API Key" scrolled to top instead of opening signup modal
  • Root cause: href="#" navigated before onclick could fire (CSP was the bigger issue, but this was also broken)
  • Fix: Changed all signup links to href="javascript:void(0)"
  • Verified: All 4 signup CTAs correctly open the modal

BUG-002: No email verification on signup (MEDIUM) — CLOSED v0.3.0

  • Impact: Anyone can create unlimited keys with fake emails
  • Resolution: Free signup removed entirely. Playground is the free demo (no keys needed). Paid signup will go through Stripe.

BUG-003: No API key recovery (MEDIUM) — CLOSED v0.3.0

  • Impact: Lost API key = create new account
  • Resolution: Free tier removed. Paid tier key recovery will be handled via Stripe customer portal.

Open

BUG-007: Simultaneous browser restart causes QUEUE_FULL (HIGH)

  • Found: Session 9
  • Impact: When both browser instances hit RESTART_AFTER_MS simultaneously (every ~1h), all requests during the ~4s restart window queue for 30s then fail with 503 QUEUE_FULL
  • Root cause: Both browsers initialized with same lastRestartTime, hit restart threshold together. acquirePage() triggers scheduleRestart() on both simultaneously.
  • Fix in progress: Stagger restarts — only one browser restarts at a time + offset initial lastRestartTime
  • Status: Fix assigned to snapapi-browser-fix sub-agent