ben.stull
c929282e07
fix(products): bomb-safe image processing + per-image error isolation; honest claim/resumability docs (SLICE-7 review)
...
ci / check (push) Has been cancelled
ci / check (pull_request) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-12 00:58:10 -07:00
ben.stull
0fc29a34dd
feat(platform): objectstore port — local + GCS adapters, config (SD-0002 §6.2)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-12 00:12:24 -07:00
ben.stull
f27a24353d
feat(platform): images port — decode, resolution bar (Q-3), WebP renditions (SD-0002 §6.2)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-12 00:09:58 -07:00
ben.stull
fcbf1393f5
feat(products): import_validate → draft, preview records, discard + TEL-1
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-11 15:51:03 -07:00
ben.stull
1b8c60fcb5
feat(slice-4): SmtpMailer — real mail over a configured relay, log-hygienic (INV-8, §6.6)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-10 23:33:40 -07:00
ben.stull
d2eceac272
feat(slice-2): deps — mailer + session dependencies; build mailer at startup
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-10 10:34:13 -07:00
ben.stull
2d15f1a2cb
feat(slice-2): platform/session — stdlib HMAC signed cookie tokens (§6.2)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-10 10:27:35 -07:00
ben.stull
446c13211a
feat(slice-2): platform/mailer port + LogMailer (dev channel, §6.2/PUC-10)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-10 10:26:58 -07:00
ben.stull
7a6b396f65
feat(slice-2): config — session secret, cookie_secure, mailer_kind (INV-8)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-10 10:26:15 -07:00
ben.stull
ef385340e8
feat(slice-1): FastAPI factory + /healthz; self-migrate at startup (INV-1/§6.4)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-10 08:38:42 -07:00
ben.stull
9462423642
feat(slice-1): platform/db migration runner + migration 0001 (INV-7, §6.3 schema)
...
Forward-only, fail-stop, advisory-lock-guarded psycopg runner; migration 0001 lays
the account/auth_code/storefront/membership schema. Tests prove migrate-from-empty
and idempotent re-migrate (INV-1 partial) and the INV-4 many-capable shape.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-10 08:37:09 -07:00
ben.stull
346e7f2e22
feat(slice-1): platform/config — single env-driven config surface (INV-8)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-10 08:35:16 -07:00
ben.stull
4acab40653
feat(slice-1): backend skeleton, deps, and import-linter layer contract
...
Four-layer package (main > domains > platform) per SD-0001 §6.2; GraphQL api layer
deferred. main.py is a stub so the top layer exists from the start (fleshed out in
the /healthz task). lint-imports green on the skeleton.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-10 08:34:38 -07:00