Current state: combined run + live docs/landing (two-path install, example prompt)

Trim Current state to the combined onboarding run (validated) and the live docs/
landing additions: agent.html buyer-pays money path, landing example-prompt card,
and the two-path Install section (Start9 vs run-from-source). Drop the done
"combined run" from Next and the redundant publish.sh/deploy-sites note (it lives
in docs/guides/startos-packaging.md).
This commit is contained in:
Keysat
2026-06-17 13:00:47 -05:00
parent 69c2cdeadf
commit 4360b03650
+23 -39
View File
@@ -111,48 +111,32 @@ Operator-specific memories at `~/.claude/projects/-Users-macpro-Projects-keysat/
## Current state (2026-06-17) ## Current state (2026-06-17)
- **Live / canonical**: **`0.2.0:58`** published — registry + `files.keysat.xyz/keysat.s9pk`, - **Live / canonical: `0.2.0:58`** — registry + `files.keysat.xyz/keysat.s9pk`, GitHub `v0.2.0-58`,
GitHub `v0.2.0-58`, universal multi-arch (x86_64 + aarch64). Live box universal (x86_64 + aarch64); live box `immense-voyage.local` confirmed on `:58`. Migrations
`immense-voyage.local` **confirmed on `:58`** (operator-verified in the StartOS UI). All through 0025; four SDKs published. All three public sites deployed (keysat.xyz, docs.keysat.xyz,
three public sites deployed (`keysat.xyz`, `docs.keysat.xyz`, `registry.keysat.xyz`). registry.keysat.xyz).
Migrations through 0025; four SDKs published.
- **Shipped in `:58`agent-payment-connect complete (slices 15).** A scoped key with the - **agent-payment-connect (slices 15) shipped in `:58`.** A `payment_providers:write` scoped key
à-la-carte `payment_providers:write` scope connects a BTCPay provider over the API, but connects BTCPay over the API, but only on a sandbox daemon for a non-mainnet store (fail-closed);
ONLY on a sandbox daemon (`KEYSAT_SANDBOX_MODE`) for a non-mainnet store; master/mainnet/production + disconnect stay master-only. Detail: `docs/guides/payments.md`.
master/mainnet/production + disconnect stay master-only. The gate fails closed: the store's
network is resolved from its on-chain receive address at callback, anything not provably
non-mainnet is denied. Migrations 00240025. Three reviewer passes; live gate
`validate-gate.sh` 10/10. Detail: `docs/guides/payments.md`, `plans/agent-payment-connect-scope.md`.
- **Onboarding doc-harness — BOTH stages `completed-clean`, AND validated as ONE combined run.** - **Onboarding doc-harness — all `completed-clean`.** Stage 1 (SDK integration), Stage 2 (regtest
Stage 1 (SDK integration) + Stage 2 (regtest buyer-pays) prior sessions; **the combined buyer-pays), and the **combined operator-order journey** (gate a paid product → buyer pays
operator-order journey (gate a paid product, then a buyer pays to unlock the gated feature) purchased license unlocks the gate) all pass docs-only under a scoped key. Rig:
ran `completed-clean` on the first pass this session** and was independently re-verified end to `onboarding-harness/` (`stage2/run-stage2.sh` four-step brief; `probe.sh` mints `.live-env`);
end (gate shut 401/403 → BTCPay regtest connected by scoped key → 50k-sat regtest payment walkthroughs in `stage2/STAGE2-RESULT.md`. Live docs now cover the case: `agent.html#connect-btcpay`
settled → purchased license opened the gate live, 200 + CSV). Rig: `onboarding-harness/stage2/` buyer-pays money path; landing got an "Example prompt" card + a two-path Install section
(`run-stage2.sh` now carries the four-step combined brief; `probe.sh` now actually mints (Start9 one-click / sideload `keysat.s9pk`, vs. run-from-source on any Linux box — both
`.live-env`). Walkthrough: `onboarding-harness/stage2/STAGE2-RESULT.md`. Doc fixes live on self-hosting, free at Creator tier, license to expand).
`keysat-docs` (agent.html/install.html); the served `openapi.rs` BTCPay paths reached the live
spec as of `:58`.
- **Public sites refreshed this session** (via `~/.keysat/deploy-sites.sh`): `agent.html#connect-btcpay` - **Next (priority order):**
gained the buyer-pays money path (`POST /v1/purchase` → poll → `license_key`, tied to the 1. Operator data action (needs master key): grant `unlimited_merchant_profiles` to Pro/Patron on
worked-example gate); `keysat-xyz-landing` agent section gained an "Example prompt" card (the the live master (confirmed-absent; steps in Open TODOs).
one-liner an operator hands an agent). Note: `publish.sh` ships the **s9pk only** and is gated on
a version bump — it does NOT touch the HTML sites; `deploy-sites.sh` is the tool for those.
- **Next (priority order)**:
1. Operator data action (needs the master key): grant `unlimited_merchant_profiles` to
Pro/Patron on the live master (confirmed-absent details in Open TODOs).
2. 3 multi-profile UIs + split `audit:read` (ROADMAP / Open TODOs). 2. 3 multi-profile UIs + split `audit:read` (ROADMAP / Open TODOs).
- **P2/P3 debt (unchanged, see ROADMAP)**: `set_product_entitlements_catalog` missing - **Debt (P2/P3, see ROADMAP):** rate-limit purchase/redeem; `422`/`415` JSON; `slug` validation;
`rows_affected` guard; no rate-limit on purchase/redeem (spoofable XFF); `422`/`415` `set_product_entitlements_catalog` `rows_affected` guard; dep advisories (`sqlx`≥0.8.1,
plain-text not JSON; `slug` unvalidated; dep advisories (`sqlx`→≥0.8.1, `rustls-webpki`≥0.103.12); no CI / fmt-clippy unenforced; webhook SSRF; design-contract conformance.
`rustls-webpki`→≥0.103.12); no CI / fmt-clippy unenforced; outbound webhook SSRF;
design-contract conformance.
- **Tests/build**: full suite green lib **18**, api **65**, subscriptions 7, upgrades 9, - **Tests/build:** full suite green (lib 18, api 65, subscriptions 7, upgrades 9, worker 3,
worker 3, crosscheck 4, migrations 9 (through **0025**); `cargo check` + `npm run check` crosscheck 4, migrations 9 through 0025); `cargo check` + `npm run check` clean.
clean (1 intentional deprecation warning); new code clippy-clean.