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:
@@ -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 1–5).** A scoped key with the
|
- **agent-payment-connect (slices 1–5) 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 0024–0025. 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.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user