carlos / platform Public

Readiness, handoff and the rate proposal at 04:35: round four fixed and round five running; the launch gate log named correctly; no exchange-rate guarantee claimed

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev 04fb3c7f4b417aefa7cd509f7731d18360c61bec parent b953fae
2 files changed, +27 −16
  • implementation/carloku-paid-launch/OVERAGE-RATES-PROPOSAL.md +2 −2
  • implementation/carloku-paid-launch/READINESS.md +25 −14

CI cancelled — superseded by a newer push — run details

diff --git a/implementation/carloku-paid-launch/OVERAGE-RATES-PROPOSAL.md b/implementation/carloku-paid-launch/OVERAGE-RATES-PROPOSAL.md
index 08581acd0..410f3b8c0 100644
--- a/implementation/carloku-paid-launch/OVERAGE-RATES-PROPOSAL.md
+++ b/implementation/carloku-paid-launch/OVERAGE-RATES-PROPOSAL.md
@@ -16,8 +16,8 @@ the floor:
| Currency | Multiplier | Why that number |
| --- | --- | --- |
| EUR | 1.00 | the approved rates |
-| USD | 1.20 | near the market rate when proposed (about 1.13 EUR to USD on 2026-10-01), rounded up so the USD rate is never below the EUR one at any plausible rate this year |
-| GBP | 0.90 | near the market rate when proposed (about 0.85 EUR to GBP on 2026-10-01), rounded up for the same reason |
+| USD | 1.20 | a commercial buffer above the market rate when proposed (about 1.13 EUR to USD on 2026-10-01). It is a fixed multiplier, not an exchange rate: it guarantees nothing about future exchange equivalence, and a move in the rate changes what a USD customer pays relative to a EUR one until a new book version is approved |
+| GBP | 0.90 | the same kind of buffer above the market rate when proposed (about 0.85 EUR to GBP on 2026-10-01); the same caveat |
The multipliers are commercial choices, not exchange rates: there is no
exchange rate anywhere in the platform, and a rate is never recomputed. They
diff --git a/implementation/carloku-paid-launch/READINESS.md b/implementation/carloku-paid-launch/READINESS.md
index 7184625d2..3f9c1a822 100644
--- a/implementation/carloku-paid-launch/READINESS.md
+++ b/implementation/carloku-paid-launch/READINESS.md
@@ -14,17 +14,17 @@ Log files are under `/home/paulca/.local/share/carloku-paid-launch-20260930/logs
| Branch | Tip | Gate | CI | Reviews | State |
| --- | --- | --- | --- | --- | --- |
-| `feat/carloku-multi-currency-20261001` | `8958392b` (the third review's findings) | `de81dd70`: passed 23:39Z on a clean tree (`gate-currency-de81dd70.txt`, exit 0, three cross builds). `8958392b`: passed 03:01Z (`gate-currency-8958392b.txt`, exit 0, three cross builds, clean tree). Void logs, not evidence: `gate-currency-a9304f16.txt` (tree moved), `gate-currency-f269365a-VOID-dirty-tree.txt` (started on an uncommitted tree, killed) | passed on `de81dd70` and on `8958392b` | 1 at `9d104f1d`: Opus accept with fixes, Astra reject. 2 at `a88a39e6`: Opus accept with fixes, Astra reject; fixed in `a9304f16`. 3 at `de81dd70`: Opus accept with fixes (P2-1 country default, P2-2 site rounding, five P3), Astra reject (nine findings: ownership before expiry, one-form, trigger, bound completion review, inclusions, rounding, cleared country, resume guard, verifier); every finding of either fixed in `8958392b` with a distinguishing test, eleven mutants killed, one equivalent (dispositions, "Review three"). 4 at `8958392b`: running (Opus + Astra, `currency-review4-brief.txt`) | integrated end to end: plans, Stripe client, console store/service/calculation/invoice, one billing form, cookies, demo; not merged |
+| `feat/carloku-multi-currency-20261001` | `1f005804` (the fourth review's findings) | `8958392b`: passed 03:01Z (`gate-currency-8958392b.txt`, exit 0, three cross builds, clean tree); `de81dd70`: passed 23:39Z. `1f005804`: started 03:22Z (`gate-currency-1f005804.txt`); the four billing packages passed in full on the same tree before the commit. Void logs, not evidence: `gate-currency-a9304f16.txt` (tree moved), `gate-currency-f269365a-VOID-dirty-tree.txt` (started on an uncommitted tree, killed) | passed on `de81dd70` and `8958392b`; `1f005804` pushed 04:25, run pending | 1 at `9d104f1d`: Opus accept with fixes, Astra reject. 2 at `a88a39e6`: Opus accept with fixes, Astra reject; fixed in `a9304f16`. 3 at `de81dd70`: Opus accept with fixes, Astra reject; fixed in `8958392b`. 4 at `8958392b`: Opus accept with fixes (seven P3), Astra reject (ten: ownership without the customer, the choice flag against the quote, invalid currency through the handler, the trigger's superset and its migration, a bound completion on changed metadata, legacy held currency, static links, the script's count, the draft flag); every finding of either fixed in `1f005804` with a distinguishing test, eight mutants killed (dispositions, "Review four"). 5 at `1f005804`: running (Opus + Astra, `currency-review5-brief.txt`). No round has yet ended with both reviewers accepting | integrated end to end: plans, Stripe client, console store/service/calculation/invoice, one billing form, cookies, demo; not merged |
| `feat/carloku-billing-layout-20261001` | `c1ae91a0` | (templates only; gated inside the currency branch) | passed | none of its own | merged into the currency branch at `5047494b`; its two-form layout was replaced by one form in `8958392b` |
| `feat/carloku-storage-sole-holder-20261001` | `eaf6e63e` | passed on `3af02a65`; `eaf6e63e` is wording and reports | passed | 9 rounds; round 9 both accept (omitted-holder class closed) | needs approval K and a recorded cutover date; not merged |
| `feat/carloku-metered-replicator-20261001` | `01f2b072` (fourth build `b53f2a93` + the chain-climb fix) | `b53f2a93`: FAILED (two ops tests, the climb reached the temp root). `01f2b072`: passed 23:47Z (`gate-replicator-01f2b072.txt`, exit 0, three cross builds) | failed on `b53f2a93` (same two tests); **passed on `01f2b072`** | 3 rounds on the third build (Opus accept with fixes, Astra reject). 4 at `01f2b072`: running (`replicator-review4-brief.txt`) | not merged; open items in its dispositions, "Review three" |
| `fix/carloku-observe-routes-cleanup-20261001` | `023e106c` | passed on `51587e00`; `023e106c` changes a test and two docs | passed | both accept at `51587e00` | merged into the launch branch at `47c97fa6` |
-| `feat/carloku-paid-launch-20260916` (launch) | `47c97fa6`: `ea7e3ea6` (this night's documents) + the merge of the observe-routes fix | gate on `bd81e86f` started 04:30 (`gate-launch-bd81e86f.txt`); last code gate before it on `cd8821c6` | passed on `6a08f88d`; `ea7e3ea6` running; `bd81e86f` pending push | 17 rounds, no whole-branch pass | the integration target; first accepted side branch merged |
-| site `feat/paid-pricing-20260916` (GitHub) | `2fc6388` | `node --test`: 18 pass (04:0x) | n/a | read-only by the fourth currency review (section K) | preview served at `http://100.119.180.57:38009`, rebuilt from `2fc6388` |
+| `feat/carloku-paid-launch-20260916` (launch) | `b953fae4`: this night's documents (`ea7e3ea6`) + the merge of the observe-routes fix (`47c97fa6`) + the readiness update | passed 03:06Z on `b953fae4` (`gate-launch-b953fae4.txt`, exit 0, three cross builds); last code gate before it on `cd8821c6` | passed on `6a08f88d`; `b953fae4` pushed 04:10, run pending | 17 rounds, no whole-branch pass | the integration target; first accepted side branch merged |
+| site `feat/paid-pricing-20260916` (GitHub) | `4feb1cd` | `node --test`: 18 pass (04:2x) | n/a | read-only by the currency reviews (section K); round four's site findings fixed in `4feb1cd` | preview served at `http://100.119.180.57:38009`, rebuilt from `4feb1cd` |
-## The flow, verified behaviour (2026-10-02)
+## The flow, behaviour the tests establish (2026-10-02)
-Verified by tests on `8958392b` (`internal/console`: `TestBillingFormPostsWhatItShows`,
+These are what the automated tests assert on `1f005804`, against fakes of Keymail and Stripe; none of it is proven against the real provider, and the fifth independent review of this code is still running. Tests: (`internal/console`: `TestBillingFormPostsWhatItShows`,
`TestBillingPageCurrencyControls`, `TestPricingLinkSurvivesSignIn`,
`TestCurrencySuggestionCookie`, `TestCountrySuggestionCookie`,
`TestBillingInclusionsFollowTheQuotedBand`,
@@ -32,8 +32,8 @@ Verified by tests on `8958392b` (`internal/console`: `TestBillingFormPostsWhatIt
`TestBoundSessionCompletedInAnotherCurrencyIsReviewedOnce`,
`TestBarrierTriggerLetsThisBuildsLegacyMonthsThrough`, and the checkout,
reconcile, calculation, invoice and recovery tests in
-`billingcurrency_test.go`) and by the site tests (`test/pricing-currency.test.mjs`,
-`test/pricing-pricebook.test.mjs`):
+`billingcurrency_test.go`; the site tests `test/pricing-currency.test.mjs`,
+`test/pricing-pricebook.test.mjs`:
- Pricing page: USD at band A without script; the currency control changes
every priced string; the billing-country control changes the band of the
@@ -48,11 +48,15 @@ reconcile, calculation, invoice and recovery tests in
preselects GBP, selects India, says 35%, prices Personal at £7.70 and
states band D inclusions (29.75 awake hours, 0.7 GB, 0.7 GB). One form:
a country or currency posted that the page did not price is first shown
- as a quote; a currency shown as the country's default and not chosen
- buys in the country's own currency; a chosen one is bought in; an account
- that bought in a currency is offered it alone; an unsold currency or an
- unknown country sets nothing and is refused at checkout.
-- Demo at `http://100.119.180.57:41881`: rebuilt 04:0x from `8958392b`
+ as a quote, judged on what would be bought (the chosen currency, else
+ the posted country's own), so no arrangement of the form's fields buys
+ a price the page did not show; a currency field that is not exactly a
+ currency sold is a 400 on both doors; an account that bought before,
+ under the book or before it, is offered its currency alone; a session is
+ acted on only when it is the intent's own (id, account, customer, mode,
+ bound id). Review four found all of these wanting at `8958392b`; they
+ hold at `1f005804` by the tests named, and round five is reading them.
+- Demo at `http://100.119.180.57:41881`: rebuilt 04:3x from `1f005804`
(binary `billing-redesigned.test`, started by the stop-marker procedure;
the EUR-only binary is kept as `billing-redesigned-eur-only.test.bak`),
serving with the price book configured: the whole path from the pricing
@@ -85,5 +89,12 @@ Each is scoped in `ENABLEMENT.md` section 8 and `OUTSTANDING.md`.
own review.
- `OUTSTANDING.md` items 7 and 9 (late requests past Stripe's key memory)
are open defects, held, not waived.
-- The replicator's open items (its dispositions, "Review three"): a swap
- during litestream's first open above all.
+- The replicator's fourth review (Opus accept with fixes: P2-1 to P2-4;
+ Astra reject: four P1s on litestream's first open, admission after
+ staleness, the hold's dates and shadow ancestry, plus six more): nothing
+ of it fixed yet; the fifth build is the next work on that branch.
+- Open on the currency branch after round four: an operator's door to
+ retire the intent of a refused, paid session once the money is settled
+ (today the review reopens on the next pass once resolved); two
+ unreviewed system strings on the billing page (`billing.quote.unknown`,
+ `billing.currency.unknown`).