Handoff at 04:35: round four fixed, round five running, the replicator's fourth review in
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
1 file changed,
+9
−9
.claude/HANDOFF.md+9 −9
CI passed — run details
diff --git a/.claude/HANDOFF.md b/.claude/HANDOFF.md| index d26d04a51..4ef79ed7f 100644 |
| --- a/.claude/HANDOFF.md |
| +++ b/.claude/HANDOFF.md |
| @@ -7,37 +7,37 @@ |
| Get Carloku's paid plans live with Stripe Tax and the complete metered model; have the pricing page and signup flow reviewable in the morning. |
| **STATUS:** |
| -Written 04:15 Dublin on 2026-10-02, during the second overnight run (brief: "continue overnight until we're ready to enable payments"; ready means reviewed, tested, integrated code and a scoped enablement plan, not payments switched on). Billing is OFF everywhere. No live Stripe write, no AWS change, no charge, no merge to main. Every payment anyone can see is a labelled simulation. |
| +Written 04:35 Dublin on 2026-10-02, during the second overnight run (brief: "continue overnight until we're ready to enable payments"; ready means reviewed, tested, integrated code and a scoped enablement plan, not payments switched on). Billing is OFF everywhere. No live Stripe write, no AWS change, no charge, no merge to main. Every payment anyone can see is a labelled simulation. |
| -Review servers, all answering 200: pricing page `http://100.119.180.57:38009` (static, rebuilt from site `2fc6388`), signup and billing demo `http://100.119.180.57:41881` (rebuilt 04:0x from the currency branch's tip `8958392b`, price book configured, USD/EUR/GBP end to end; Keymail and Stripe simulated), console billing copy `http://100.119.180.57:45033` if still up. |
| +Review servers, all answering 200: pricing page `http://100.119.180.57:38009` (static, rebuilt from site `2fc6388`), signup and billing demo `http://100.119.180.57:41881` (rebuilt 04:3x from the currency branch's tip `1f005804`, price book configured, USD/EUR/GBP end to end; Keymail and Stripe simulated), console billing copy `http://100.119.180.57:45033` if still up. |
| The durable records are on this branch under `implementation/carloku-paid-launch/`: `READINESS.md` (every branch's tip, gate log, CI and review state, with the verified behaviour), `ENABLEMENT.md` (the scoped plan to enable payments: catalog of 36, cutovers, key permissions, webhook, portal, release order, rollback, approvals), `OVERAGE-RATES-PROPOSAL.md` (the USD/GBP rate table for approval), `stripe-live-readiness.json` (remaining list revised for 36 prices and the book), `OUTSTANDING.md` (the metered model's open items and approvals A to K). |
| Decisions received 2026-10-01 evening, applied: the annual bases (28/24/22, 6/5/4.50, 60/50/45 USD/EUR/GBP, team minimum ten) confirmed for implementation only; the currency rulings (USD default, EUR for EU member states, GBP for the UK, visible override, one stored currency for subscription and overages, bands by billing country only); the five currency strings and the regrouped pricing page copy, approved verbatim and applied. Still a draft: the book `2026-10-01-draft1` and the USD/GBP overage rates and floors. |
| Branches (all on the forge, none merged; the local gate is not CI): |
| -- `feat/carloku-multi-currency-20261001` `8958392b`: the price book and one stored currency per purchase end to end, the billing page as one form, the cookies, the demo. Three review rounds; every finding of the third fixed with a distinguishing test (dispositions "Review three", eleven mutants killed). Gate on `8958392b` passed (exit 0, three cross builds); CI passed on `8958392b`; fourth review (Opus + Astra) running. |
| -- `feat/carloku-metered-replicator-20261001` `01f2b072`: fourth build plus the chain-climb fix after CI failed on `b53f2a93`; gate and CI passed on `01f2b072`; fourth review running. |
| +- `feat/carloku-multi-currency-20261001` `1f005804`: the price book and one stored currency per purchase end to end, the billing page as one form, the cookies, the demo. Four review rounds; every finding of the fourth (Opus accept with fixes, Astra reject) fixed with a distinguishing test (dispositions "Review four", eight mutants killed). Gate and CI passed on `8958392b`; gate on `1f005804` running at 04:35, CI pending; fifth review (Opus + Astra) running. No round has yet ended with both reviewers accepting. |
| +- `feat/carloku-metered-replicator-20261001` `01f2b072`: fourth build plus the chain-climb fix; gate and CI passed; fourth review in: Opus accept with fixes (P2-1 to P2-4), Astra reject (four P1s, mostly litestream's own opens and the hold's dates). Nothing fixed yet; the fifth build is next on that branch. |
| - `feat/carloku-storage-sole-holder-20261001` `eaf6e63e`: round 9 both accept; CI passed; needs approval K and a cutover date. |
| -- `fix/carloku-observe-routes-cleanup-20261001` `023e106c`: both accept; CI passed; merged into this branch at `47c97fa6` (gate on that tip started 04:30). |
| +- `fix/carloku-observe-routes-cleanup-20261001` `023e106c`: both accept; CI passed; merged into this branch at `47c97fa6`; the gate on the launch tip `b953fae4` passed (exit 0, three cross builds). |
| - `feat/carloku-billing-layout-20261001` `c1ae91a0`: merged into the currency branch; its two-form page was replaced by one form. |
| - `feat/carloku-late-request-fencing-20261001` `1b61de82`, `feat/carloku-bucket-hour-evidence-20261001` `0aa1fbec`: unchanged (rejected / needs approval J). |
| -- Site `feat/paid-pricing-20260916` (GitHub) `2fc6388`: every amount from the platform's export; country band wiring; exact rates; honest link parameters; a draft book cannot be published. |
| +- Site `feat/paid-pricing-20260916` (GitHub) `4feb1cd`: every amount from the platform's export; country band wiring; exact rates; honest link parameters, static links included; a draft book cannot be published. |
| **NEEDED:** |
| - Paul, commercial: approve the 36 amounts as an `approved` book version (approval L) together with the USD/GBP overage rates and floors in `OVERAGE-RATES-PROPOSAL.md`, or state other figures; the HALF code word; the proration policy (B); the partial-month rule (C). |
| - Paul, copy: the console billing page's 40 strings; the store-refusal copy (`OUTSTANDING.md` 19g); a new sentence for the pricing page's `bands.p3` ("The euro price is what is charged" is wrong under fixed currencies); the approved pricing and currency strings themselves need nothing more. |
| - Paul, rulings: evidence for a held bucket-hour (J); storage on a bucket a store has left (K); the cutover note (M: purchases before the book stay legacy EUR; binary first, variables second). |
| - Scoped approvals, prepared as plans only: Stripe test mode (E) for the fence test and the rehearsal; Stripe live provisioning (F) after the approved book; the Cost and Usage Report export and the scratch-object write (G); Path B on a dev box (H). |
| -- Reviews to read when they land: the currency branch's fourth (`logs/opus-currency-review4.md`, `astra-currency-review4.md`), the replicator's fourth (`opus-replicator-review4.md`, `astra-replicator-review4.md`). |
| +- Reviews to read when they land: the currency branch's fifth (`logs/opus-currency-review5.md`, `astra-currency-review5.md`). The replicator's fourth is in and unaddressed. |
| **RECOMMENDED:** |
| -- Read the fourth currency review; if both accept, merge the currency branch into this branch through the forge (`amadan branch merge`, CI green on the tip), then merge `fix/carloku-observe-routes-cleanup-20261001`. Rule on K to let the storage branch follow. |
| +- Read the fifth currency review; if both accept, merge the currency branch into this branch through the forge (`amadan branch merge`, CI green on the tip). Rule on K to let the storage branch follow. |
| - Publish the approved book version as soon as L is given; it is a new entry in `internal/plans/pricebook.json`, the export regenerated and copied to the site, and the 36 lookup keys renamed. |
| - Test-mode rehearsal (E) before anything live: the list in both reviews and in `ENABLEMENT.md` section 6. |
| - Then, each on its own branch: quantity reduction at renewal, the evidence door for a box's first minutes, the AWS principal inventory and the bucket ownership attestation door, Free-tier enforcement, dormancy and pool accounting. |
| **SESSION:** |
| -Running at 04:30: the gate on the launch tip `47c97fa6` (`logs/gate-launch-47c97fa6.txt`), the two currency reviews, the two replicator reviews (detached `setsid` processes; their output files are named in `READINESS.md`). The demo (pid in `layout-review/demo-redesigned.log`'s process, stop marker `layout-review/demo-redesigned.stop`) and the pricing preview (`python3 -m http.server 38009`) keep serving. |
| +Running at 04:35: the gate on the currency tip `1f005804` (`logs/gate-currency-1f005804.txt`), the two fifth-round currency reviews, the two replicator reviews (detached `setsid` processes; their output files are named in `READINESS.md`). The demo (pid in `layout-review/demo-redesigned.log`'s process, stop marker `layout-review/demo-redesigned.stop`) and the pricing preview (`python3 -m http.server 38009`) keep serving. |
| Scratch on the box: `~/.cache/tmp/claude-1001/{currency-wt,replicator-wt,fencing-wt,evidence-wt}` (git worktrees), the demo binaries, `/var/tmp/ck`, `~/.cache/carloku-gate`. The void gate logs are named `*VOID*`. |