IWasCute

repo: ~/Projects/IWasCute · 24 commits · 0 in last 24h, 0 in last 7d ·

Search the build

24 commits indexed

  1. 316515b 2026-09-10 TK-11412: add /privacy + /terms, and stop the licensor flow claiming a submission that never happened
  2. cb37a2a 2026-09-10 iwascute: pin .deploy.conf PROJECT_NAME=gap-iwascute (real live pm2 name) so deploy reload succeeds (TK-11412)
  3. 3c1cc30 2026-09-10 iwascute: exclude prod verification/ artifacts from rsync deploy (delete-guard) (TK-11412)
  4. 5dd39c2 2026-09-10 iwascute: add sitewide AdSense adsbygoogle.js loader to root layout for Auto Ads eligibility (TK-11412)
  5. c6ece76 2026-09-10 iwascute: add FAQ page (content depth), wire into footer + sitemap, scaffold canonical rsync .deploy.conf (TK-11412 AdSense readiness)
  6. 21032c0 2026-09-10 iwascute: canonicalize homepage for AdSense — redirect dev v1/v2/v3 variants to /, sitewide Privacy/About/Contact footer, drop dead Express-era static index/admin (TK-11412)
  7. f962e4a 2026-09-10 iwascute: redirect /privacy -> /privacy.html (AdSense URL consistency)
  8. edd2d57 2026-09-10 Add clean /privacy route (AdSense URL consistency)
  9. 1106eb7 2026-09-10 Add privacy policy page for AdSense
  10. 443abe5 2026-09-10 Deploy IWasCute verification with preserved analytics and portable runtime proof
  11. 9205c24 2026-09-10 auto-data-snapshot: 2026-09-10T10:34:55 (2 data files) — verification/TK-11380/canary/results.json verification/TK-11380/production.patch
  12. a21f9dd 2026-09-10 Record IWasCute verification boundaries and deployment gates
  13. 9ee4d7d 2026-09-10 Verify AdSense ownership without loading ads in private photo flows
  14. fc38976 2026-09-09 TK-11341: add AdSense Auto-Ads loader + ads.txt (revert to remove ads)
  15. 744445d 2026-08-30 add creds-in-URL fetch guard to gated pages (TK-10984)
  16. 22cd8ab 2026-08-25 creds-safe fetch guard: resolve relative fetch vs credential-free location (creds-in-URL trap)
  17. 4d594ed 2026-08-04 Strip DW marketing pixel + ad slot from internal tool (not a customer-facing site) [ads/tracking scope]
  18. dfb7fc3 2026-08-04 Wire DW Meta Pixel 1431180262113856 + DW-network ad slot [ads/tracking rollout]
  19. b4350f1 2026-05-30 harden .gitignore: add backup file patterns (*.bak-*, *.pre-*, *.orig, *.save, *.old, *~, copy-of-*)
  20. d56ab2a 2026-05-30 fix: respect PORT env var in server.js; add missing express dep; guard division-by-zero in TvN slider
  21. f0b70d3 2026-05-30 security: strip hardcoded dw_admin DSN password -> env-first/passwordless. No rotation/deploy.
  22. d340dfc 2026-05-20 add: pre-stage Meta Pixel snippet (placeholder; flip via _dw-batch set-fb-pixel.sh)
  23. 12b7f89 2026-05-13 snapshot: 2 file(s) changed, +1 new, ~1 modified
  24. 5f5efec 2026-05-06 initial scaffold (gitify-all 2026-05-06)

Authors

Agents used

  • none detected

Skills used

  • /privacy6
  • /claude5
  • /code5
  • /terms3
  • /tracking2
  • /licensor1
  • /submit1
  • /canary1
  • /results1
  • /production1
  • /index1
  • /passwordless1
  • /deploy1

Creative ideas + design notes

Commits with substantial prose (≥120 chars) — the rationale behind each move.

316515b · 2026-09-10 · TK-11412: add /privacy + /terms, and stop the licensor flow claiming a submission that never happened
Two blockers on IWasCute public readiness, both verified live before changing anything.

1. /privacy and /terms did not exist. The login and licensor pages link to both,
   so every visitor following those links got a 404 - and a reachable, accurate
   privacy policy is a hard AdSense requirement, not a nicety. Both pages are
   written from what the code actually does: the two real third parties (AdSense
   ca-pub-5278231299883833 and GA4 G-2DHDBP8R78, both in layout.tsx) and the real
   columns in db/001_schema.sql - email, display name, adult confirmation,
   photographer and copyright fields, the likeness signature, and the separate
   editorial / commercial / AI-training consents. No boilerplate claims about data
   we do not collect.

2. ReviewSubmit simulated a submission. It waited 2.2s then set success on
   Math.random() > 0.05, telling a real person their photos were in the queue and
   that we would email them when cleared - for photographs that were never
   transmitted - and showing a random failure the other 5% of the time. There is
   no /api/licensor/submit endpoint (the only API routes are auth and admin), so
   nothing was ever sent or stored. The flow now ends on an honest preview state
   saying plainly that submissions are not open, nothing was uploaded, and the
   data stayed in the browser.

'success' is deliberately removed from SubmitState rather than left unused: it
would compile fine but render nothing, dropping the user back on the form.

Verified: tsc --noEmit clean, next build succeeds, /privacy and /terms present in
the route table as static pages.

Deploy is NOT included here and stays gated.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
cb37a2a · 2026-09-10 · iwascute: pin .deploy.conf PROJECT_NAME=gap-iwascute (real live pm2 name) so deploy reload succeeds (TK-11412)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QTGuKtAvmVMngA9PyTiftG
3c1cc30 · 2026-09-10 · iwascute: exclude prod verification/ artifacts from rsync deploy (delete-guard) (TK-11412)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QTGuKtAvmVMngA9PyTiftG
5dd39c2 · 2026-09-10 · iwascute: add sitewide AdSense adsbygoogle.js loader to root layout for Auto Ads eligibility (TK-11412)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QTGuKtAvmVMngA9PyTiftG
c6ece76 · 2026-09-10 · iwascute: add FAQ page (content depth), wire into footer + sitemap, scaffold canonical rsync .deploy.conf (TK-11412 AdSense readiness)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QTGuKtAvmVMngA9PyTiftG
21032c0 · 2026-09-10 · iwascute: canonicalize homepage for AdSense — redirect dev v1/v2/v3 variants to /, sitewide Privacy/About/Contact footer, drop dead Express-era static index/admin (TK-11412)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QTGuKtAvmVMngA9PyTiftG
22cd8ab · 2026-08-25 · creds-safe fetch guard: resolve relative fetch vs credential-free location (creds-in-URL trap)
Fleet inoculation — opening this basic-auth app with credentials in the URL
poisoned document.baseURI and made relative fetch('/api/…') throw. Guard resolves
non-absolute request URLs against location instead. Ref: creds-in-url-fetch-guard-fleet-pattern.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
d56ab2a · 2026-05-30 · fix: respect PORT env var in server.js; add missing express dep; guard division-by-zero in TvN slider
- server.js: PORT was hardcoded 7350, ignoring process.env.PORT; now uses process.env.PORT||7350
- package.json: express was used in server.js but never declared as a dependency (MODULE_NOT_FOUND on fresh install)
- public/index.html: moveSlider() divided by pct which can be 0 when slider is at left edge, producing Infinity width on thenEl; guarded with pct>0 check

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

File tree

75 files tracked. Click any to browse the source at HEAD.

Other build journals

← Hub  ·  all 4 projects  ·  Ken →

Export

commits.csv · feed.atom · project.json · commits.json

rendered in 2ms