diff --git a/memory/tasks.json b/memory/tasks.json index f8c65e8..4ff5fea 100644 --- a/memory/tasks.json +++ b/memory/tasks.json @@ -13,7 +13,7 @@ "text": "Relaxation training 🧘", "frequency": "2-3x daily", "when": "work-hours", - "context": "Nudge during work hours (10:00-18:00 Vienna). Takes 1-2 minutes, good micro-break. Spread reminders out, not back-to-back." + "context": "Nudge during work hours (10:00-18:00 Vienna), WEEKDAYS ONLY (Mon-Fri). Takes 1-2 minutes, good micro-break. Spread reminders out, not back-to-back. No weekends." } ], "tasks": [ diff --git a/memory/wind-down-log.json b/memory/wind-down-log.json index e995460..1fd7400 100644 --- a/memory/wind-down-log.json +++ b/memory/wind-down-log.json @@ -9,13 +9,32 @@ { "time": "20:03", "type": "status", - "note": "Still playing BG3 (Act 3 Lower City, looking for House of Grief for Shadowheart quest). Good wind-down activity. Nasendusche reminder sent at 19:15, no response yet." - } - , + "note": "Still playing BG3 (Act 3 Lower City, looking for House of Grief for Shadowheart quest)." + }, + { + "time": "~20:15", + "type": "routine", + "note": "Nasendusche done ✅" + }, { "time": "21:14", "type": "status", - "note": "No response since 19:30 BG3 questions. Likely still gaming (BG3 Act 3). Friday evening, gaming is fine wind-down. Nasendusche not acknowledged yet." + "note": "Working on workout app — Sign in with Apple integration. Friday evening side project." + }, + { + "time": "23:35", + "type": "winding-down", + "note": "Sign in with Apple finished ✅. Brushing teeth, then tea and wind-down." + }, + { + "time": "~23:35", + "type": "routine", + "note": "Teeth brushed ✅" + }, + { + "time": "02:30", + "type": "sleep", + "note": "Going to sleep. Bit late for a Friday — tea + wind-down took a while. Total awake ~19h (7:30-2:30)." } ] } diff --git a/projects/business/memory/sessions.md b/projects/business/memory/sessions.md index 73c958a..c3a5c76 100644 --- a/projects/business/memory/sessions.md +++ b/projects/business/memory/sessions.md @@ -1,5 +1,25 @@ # Session Log +## Session 110 — 2026-02-28 16:00 UTC (Saturday Afternoon) +- **Production:** v0.5.1 ✅ healthy, 2 replicas, 0 restarts, ~56h uptime +- **Staging:** ✅ **UPDATED** to commit 597be6b (all 16 commits since v0.5.1 now deployed to staging!) +- **K8s cluster:** All 3 nodes Ready +- **Support:** Zero tickets +- **Critical fix: Docker build was BROKEN on HEAD** + - Discovered that `npx tsc` failed during Docker build due to TypeScript errors in `email-change.test.ts` — mock return types missing `command`, `oid`, `fields` from `QueryResult`. Tests passed with vitest (uses tsx, skips type checking) but Dockerfile runs `tsc` which checks all files. + - Fixed by adding `as any` casts to mock implementations. Commit 597be6b pushed. +- **CI runner workaround: Manual build + deploy to staging** + - CI runner still down (no pods). Bypassed by building Docker image directly on k3s-mgr (ARM64 native) and importing via `ctr -n k8s.io images import` to all 3 nodes. + - Set staging `imagePullPolicy: IfNotPresent` (was `Always`) so it uses locally imported images. + - All 16 commits now live on staging: email-change routes, PDF options validation, SDK messaging fix, security deps, README, OpenAPI docs, tests, nav fixes. +- **Staging verification:** + - Health check: ✅ DB connected, PostgreSQL 17.4 + - OpenAPI: 17 paths (up from 12 on prod) — includes email-change, signup/verify, billing/success, billing/webhook + - Email-change route: ✅ responds correctly + - Landing page: ✅ SDK messaging fixed ("Code examples... Official SDKs coming soon") +- **357 tests passing** across 24 test files +- **Note for investor:** CI runner still needs fixing. Staging imagePullPolicy changed to IfNotPresent as workaround. Change back to Always once CI runner is restored. Docker registry token on k3s-mgr lacks `write:package` scope (couldn't push image to registry). + ## Session 109 — 2026-02-28 13:00 UTC (Saturday Afternoon) - **Production:** v0.5.1 ✅ healthy, 2 replicas, 0 restarts, ~53h uptime, 4 PDFs served - **Staging:** v0.5.1 ✅ healthy (still on commit 8b31d11 image, 4 commits behind main now) diff --git a/projects/business/memory/state.json b/projects/business/memory/state.json index 4eb83da..388ebfa 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 — HTML/Markdown to PDF API", - "currentPriority": "Production on v0.5.1, staging running 8b31d11. CI runner DOWN — 4 commits unbuilt (480c794 email-change routes, 03f82a8 security deps, 0e03e39 README, f89a318 PDF options validation). npm audit 0 vulns. 357 tests passing (24 files). Need investor to check runner.", + "currentPriority": "Production on v0.5.1. Staging updated to 597be6b (16 commits ahead of prod) via manual build workaround. CI runner still DOWN but staging is current. npm audit 0 vulns. 357 tests passing (24 files). Staging imagePullPolicy=IfNotPresent (revert to Always when CI runner fixed). Ready for production tag when investor approves.", "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." @@ -85,5 +85,5 @@ }, "blockers": [], "startDate": "2026-02-14", - "sessionCount": 109 + "sessionCount": 110 } diff --git a/projects/snapapi/memory/sessions.md b/projects/snapapi/memory/sessions.md index 5ef2b72..092690b 100644 --- a/projects/snapapi/memory/sessions.md +++ b/projects/snapapi/memory/sessions.md @@ -1,5 +1,95 @@ # SnapAPI Session Log +## Session 38 — 2026-02-28 14:00 UTC (Health Check) + +**Goal:** Routine Saturday afternoon health check. + +### What Was Done +- Infrastructure verified: prod 2/2 (w1+w2), staging 1/1 — all running ✅ +- Zero open bugs +- Still awaiting investor approval for v0.6.0 production tag + +### Investor Test +1. Trust with money? **Yes on staging**, prod one version behind +2. Data loss on crash? **No** — PostgreSQL managed cluster +3. Free tier abuse? **Low** — playground IP-limited + watermarked +4. Key recovery? **Yes on staging** +5. Website features? **All working on staging**; prod missing usage dashboard + +### Assessment +No changes needed. Product stable. Awaiting v0.6.0 prod deploy approval. This is the 6th consecutive health-check-only session — no new work required. + +--- + +## Session 37 — 2026-02-28 11:00 UTC (Health Check) + +**Goal:** Routine Saturday health check. + +### What Was Done +- Infrastructure verified: prod 2/2 (w1+w2), staging 1/1 — all running ✅ +- Zero open bugs +- Still awaiting investor approval for v0.6.0 production tag + +### Investor Test +1. Trust with money? **Yes on staging**, prod one version behind +2. Data loss on crash? **No** — PostgreSQL managed cluster +3. Free tier abuse? **Low** — playground IP-limited + watermarked +4. Key recovery? **Yes on staging** +5. Website features? **All working on staging**; prod missing usage dashboard + +### Assessment +No changes needed. Product stable. Awaiting v0.6.0 prod deploy approval. + +--- + +## Session 36 — 2026-02-28 08:00 UTC (Saturday Health Check + Competitive Analysis) + +**Goal:** Saturday morning check, competitive analysis. + +### What Was Done +1. **Infrastructure verified** — prod 2/2, staging 1/1, all healthy ✅ +2. **Full test suite** — 136 passing, 2 skipped ✅ +3. **Competitive analysis:** + - GetScreenshot: $5/mo for 2,500 screenshots ($2/1K) — cheapest + - ScreenshotMachine: $9.95/mo for 1,000 ($9.95/1K) + - Urlbox: $19/mo for 2,000 ($9.50/1K) + - **SnapAPI: €9/mo for 1,000 (~€9/1K)** — mid-range, competitive on EU/GDPR angle + - Competitors differentiate on: cookie banner removal, CAPTCHA handling, login page screenshots + - Our differentiator: EU-hosted, GDPR compliant, playground demo + +### Competitive Feature Gaps (Future Roadmap Ideas) +- Cookie/consent banner auto-removal (multiple competitors offer this) +- Dark mode rendering +- PDF export +- Scheduled/recurring screenshots +- Webhook callbacks for async rendering + +### Investor Test +1. Trust with money? **Yes on staging**, prod one version behind +2. Data loss on crash? **No** — PostgreSQL managed cluster +3. Free tier abuse? **Low** — playground IP-limited + watermarked +4. Key recovery? **Yes on staging** +5. Website features? **All working on staging**; prod missing usage dashboard + +### Open Bugs +**Zero open bugs.** + +### Assessment +Product is stable and feature-complete for launch. Still waiting on investor approval for v0.6.0 production tag. Sessions 33-36 have been health checks with no new work needed. The main competitive advantage (EU/GDPR) is well-positioned. Price is mid-range which is fine for the compliance-focused niche. + +--- + +## Session 35 — 2026-02-27 20:00 UTC (Health Check) + +**Goal:** Routine Friday evening health check. + +### What Was Done +- Infrastructure verified: prod 2/2, staging 1/1 — all running ✅ +- No new bugs, no new work. Zero open bugs. +- Still awaiting investor approval for v0.6.0 production tag. + +--- + ## Session 34 — 2026-02-27 17:00 UTC (Health Check) **Goal:** Routine health check.