From ee84809e3823f95e67514169a460405b1fa2cd95 Mon Sep 17 00:00:00 2001 From: Keysat Date: Tue, 16 Jun 2026 14:21:39 -0500 Subject: [PATCH] Mark 0.2.0:56 live on immense-voyage.local; refresh Current state --- AGENTS.md | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index fe5c221..565d0ab 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -110,15 +110,17 @@ Operator-specific memories at `~/.claude/projects/-Users-macpro-Projects-keysat/ ## Current state (2026-06-16) -- **Live**: registry `registry.keysat.xyz` publishes **`0.2.0:55`** — universal - multi-arch, GitHub release `v0.2.0-55`, canonical s9pk at +- **Live**: registry `registry.keysat.xyz` publishes **`0.2.0:56`** — universal + multi-arch, GitHub release `v0.2.0-56`, canonical s9pk at `files.keysat.xyz/keysat.s9pk`. Migrations 0020–0022; four SDKs published; - `keysat.xyz` + `docs.keysat.xyz` deployed. Live server `immense-voyage.local` - still runs `:54` until updated from the registry. **This session's work is - committed + pushed to `main` but UNRELEASED — no `:56` cut, not built.** (`:55` - shipped scoped keys, the settle-amount tripwire, and all 4 StartOS submission - blockers — see git log.) -- **Shipped this session (daemon `b088bfc`, pushed origin+gitea; unreleased)** — + `keysat.xyz` + `docs.keysat.xyz` deployed. **Live server `immense-voyage.local` + now runs `:56`** — deployed via `make install` this session and verified: public + `/v1/products` 200, and `/v1/admin/tier` with a read-only scoped key flipped + 403→200, confirming the `:55` `require_scope` rollout is now active on the box. + (`:55` shipped scoped keys, the settle-amount tripwire, and all 4 StartOS + submission blockers; `:56` adds the product→merchant-profile write path — see git log.) +- **Shipped + RELEASED this session as `:56` (daemon feature `b088bfc`, + version-bump `6b02992`, doc-fix `d2846ac`; pushed origin+gitea)** — **product→merchant-profile write path, closing the multi-profile GAP.** `Product.merchant_profile_id` + all 4 product SELECTs + `row_to_product`; new `repo::set_product_merchant_profile` (validates profile exists → 404, not FK 500); @@ -131,10 +133,9 @@ Operator-specific memories at `~/.claude/projects/-Users-macpro-Projects-keysat/ - **Work queue (next, in order)**: 1. 3 remaining multi-profile UIs (rail picker, per-profile SMTP, rail-pref - editor). (`unlimited_merchant_profiles` for Pro/Patron is now an operator - TODO above.) - 2. Cut `:56` to ship this session's write path to the registry (bump manifest → - `make universal` → `publish.sh`) — bundle with the UIs above if landing soon. + editor). + 2. Operator data action (now unblocked — `:56` is live): grant + `unlimited_merchant_profiles` to Pro/Patron on the master (see Open TODOs). 3. Deferred (now in Open TODOs): split `audit:read` out of the blanket `:read` scope into its own tier. @@ -162,7 +163,7 @@ Operator-specific memories at `~/.claude/projects/-Users-macpro-Projects-keysat/ optional fmt/prettier standalone commit. - **Tests/build**: `cargo check` clean (1 intentional deprecation warning); full - suite green — api **54** (incl. new settle-tripwire + scoped-key role-boundary - tests), subscriptions 7, upgrades 9, worker 3, crosscheck 4, migrations 9. No new - clippy warnings. FK enforcement **confirmed** — sqlx pool sets `foreign_keys(true)` - per connection (`db/mod.rs`). CI/fmt status is in Known debt. + suite green at `:56` — unit 10, api **56** (incl. the product→merchant-profile + write-path tests), subscriptions 7, upgrades 9, worker 3, crosscheck 4, + migrations 9. No new clippy warnings. FK enforcement **confirmed** — sqlx pool + sets `foreign_keys(true)` per connection (`db/mod.rs`). CI/fmt status is in Known debt.