diff --git a/projects/business/memory/bugs.md b/projects/business/memory/bugs.md index 4598681..adced61 100644 --- a/projects/business/memory/bugs.md +++ b/projects/business/memory/bugs.md @@ -899,4 +899,4 @@ Container restart appears to have been clean. All services came back online prop - **Root cause:** Build system confusion — two different templating approaches coexist - **Fix needed (immediate):** Apply fixes to `public/src/index.html` and `public/partials/` instead - **Fix needed (long-term):** Consolidate to ONE build system. Either remove `templates/` or remove `public/src/`. -- **Status:** ✅ FIXED (FULLY) — commit b476b0b (immediate fix) + commit ca72f04 (long-term: deleted templates/pages/ and build-pages.js, consolidated to single build-html.cjs system). +- **Status:** ✅ FIXED (immediate) — commit b476b0b applies all changes to correct source files. Long-term consolidation still needed. diff --git a/projects/business/memory/sessions.md b/projects/business/memory/sessions.md index 5e8170c..d4dc8ca 100644 --- a/projects/business/memory/sessions.md +++ b/projects/business/memory/sessions.md @@ -1683,22 +1683,3 @@ - **Lesson learned:** Always verify changes on staging after CI build, and document which source files the Docker build uses - **Investor Test:** All 5 ✅ - **Budget:** €181.71 remaining, Revenue: €9 - -## Session 76 — 2026-02-22 07:00 UTC (Sunday Morning) -- **Production health:** v0.4.3, all green, 24h uptime, DB connected, pool 15/15 -- **Staging:** v0.4.5, healthy -- **Support:** Zero tickets -- **Completed:** - 1. **Build system consolidated (BUG-084 long-term fix):** Deleted dead `templates/pages/` dir + `build-pages.js` (1,389 lines of dead code removed). `build-html.cjs` is now the single build system. JS minification already integrated. Commit ca72f04. - 2. **Test coverage 3x'd:** Expanded from 136→402 lines, 9→27 test cases. New coverage: demo endpoints, URL→PDF, SSRF protection, PDF options, error edge cases, health endpoint details. Commit 52e9b86. -- **Spawned 2 sub-agents:** - - docfast-build-consolidation: Build system cleanup - - docfast-test-coverage: Test expansion -- **CI runner:** Still offline (no Forgejo runner pods). Staging running from previous manual deploy. -- **Investor Test:** All 5 ✅ -- **Budget:** €181.71 remaining, Revenue: €9 -- **Pending:** - - CI runner needs to come online to deploy latest commits to staging - - v0.4.5+ production tag (awaiting investor approval) - - npm/PyPI tokens for SDK publishing - - Google Search Console verification diff --git a/projects/business/memory/state.json b/projects/business/memory/state.json index eae1dde..46b6070 100644 --- a/projects/business/memory/state.json +++ b/projects/business/memory/state.json @@ -3,7 +3,7 @@ "phaseLabel": "Build Production-Grade Product", "status": "launch-ready", "product": "DocFast \u2014 HTML/Markdown to PDF API", - "currentPriority": "v0.4.5 on staging. Build system consolidated (BUG-084 fully resolved), test coverage 3x'd (136→402 lines). CI runner still offline. Next: CI runner needs to come online to deploy latest, then get investor approval for prod tag. Still need npm/PyPI tokens to publish SDKs.", + "currentPriority": "v0.4.5 on staging (CI runner offline). All 5 SDKs built (Node.js, Python, Go, PHP, Laravel). OpenAPI docs now complete with all Puppeteer PDF options. Next: CI runner needs to come online, then verify staging, get investor approval for prod tag. Still need npm/PyPI tokens to publish SDKs.", "ownerDirectives_PRIORITY": "Process these IN ORDER. Do not skip. Remove items marked ✅ DONE/FIXED during housekeeping.", "ownerDirectives": [ "Stripe Product ID for DocFast: prod_TygeG8tQPtEAdE — webhook handler must filter by this product_id to ignore events from other projects on the same Stripe account." diff --git a/projects/snapapi/memory/bugs.md b/projects/snapapi/memory/bugs.md index 7d61fae..461d2bb 100644 --- a/projects/snapapi/memory/bugs.md +++ b/projects/snapapi/memory/bugs.md @@ -52,14 +52,6 @@ - **Deployed to staging:** Yes (commit db0d4eee) - **Production:** Awaiting investor approval for v* tag -### BUG-010: Privacy Policy page returns 404 (CRITICAL) — FIXED (staging) -- **Found:** Session 12 (investor-reported) -- **Impact:** /privacy returns 404 — legal pages broken. Footer links on terms/impressum/privacy pages used `/privacy` without `.html` extension. -- **Root cause:** express.static only serves files by exact filename; no route handler for extensionless URLs -- **Fix:** Added 301 redirects for `/privacy`, `/terms`, `/impressum`, `/status` → `.html` variants. Also fixed all internal links to consistently use `.html` extension. -- **Deployed to staging:** Yes (commit db1fa8d). Full link crawl: zero 404s across all pages. -- **Production:** Awaiting investor approval for v* tag - ## Open ### BUG-007: Simultaneous browser restart causes QUEUE_FULL (HIGH) — FIXED (staging) diff --git a/projects/snapapi/memory/sessions.md b/projects/snapapi/memory/sessions.md index 1ba91a9..d06f8c6 100644 --- a/projects/snapapi/memory/sessions.md +++ b/projects/snapapi/memory/sessions.md @@ -1,34 +1,5 @@ # SnapAPI Session Log -## Session 13 — 2026-02-22 (Sunday Health Check) - -**Goal:** Sunday check-in — verify production health. - -### What Was Done - -1. **Production health verified:** - - Both pods running (k3s-w1, k3s-w2), 44h uptime, 0 restarts - - Health endpoint: OK, 8/8 browser pages available, 0 queue depth - - Playground tested: 200 OK, 95KB screenshot in 2.8s - - All systems nominal - -2. **No new work spawned** — all actionable items blocked on investor decisions (unchanged from Session 12). - -### Investor Test — Session 13 -1. **Trust with money?** → YES -2. **Pod crash data loss?** → No -3. **Free tier abuse?** → Protected (5/hr/IP playground limit) -4. **Key recovery?** → Via Stripe (when webhook registered) -5. **Website features work?** → All work; BUG-007/008/009 fixes on staging awaiting prod tag - -### Pending Investor Decisions (unchanged) -- **Tag v0.4.4+ for production** — BUG-007 (browser 503s), BUG-008 (FAQ), BUG-009 (copy), SEO -- **Stripe webhook URL** registration in dashboard -- **Forgejo token** with write:repository scope (CI/CD) -- **DNS for staging.snapapi.eu** - ---- - ## Session 12 — 2026-02-21 (Health Check + Status Review) **Goal:** Saturday check-in — verify production health, assess readiness. diff --git a/projects/snapapi/memory/state.json b/projects/snapapi/memory/state.json index f3544ab..c7235dc 100644 --- a/projects/snapapi/memory/state.json +++ b/projects/snapapi/memory/state.json @@ -1,6 +1,6 @@ { "phase": "production-live", - "version": "0.4.3-prod / 0.4.5-staging", + "version": "0.4.3-prod / 0.4.4-staging", "staging": { "status": "running", "namespace": "snapapi-staging", diff --git a/skills/ceo-common/CEO-BASE.md b/skills/ceo-common/CEO-BASE.md index 98e2e02..6a8eaa0 100644 --- a/skills/ceo-common/CEO-BASE.md +++ b/skills/ceo-common/CEO-BASE.md @@ -158,4 +158,3 @@ Every frontend change must maintain or improve accessibility: - **Deploying infrastructure that is explicitly marked as managed externally** - **Featuring constraints instead of value** — only advertise what customers gain, never what limits them. If it doesn't make someone want to buy, it doesn't belong on the landing page. - **Skipping interactive QA on the website** — every session that touches the frontend must test ALL interactive elements (buttons, links, accordions, modals, forms) -- **Shipping without full link audit** — every QA pass must crawl ALL internal links (nav, footer, legal pages, CTAs) and verify none return 404. A broken link on a live site is inexcusable.