Update Current state after backlog adjudication
This commit is contained in:
@@ -110,27 +110,27 @@ Operator-specific memories at `~/.claude/projects/-Users-macpro-Projects-keysat/
|
||||
policy entitlements (admin UI), then re-issue the master self-license so it takes
|
||||
effect.
|
||||
|
||||
## Current state (2026-06-17)
|
||||
## Current state (2026-06-18)
|
||||
|
||||
- **Live / canonical: `0.2.0:58`** — universal s9pk at `files.keysat.xyz/keysat.s9pk` + GitHub `v0.2.0-58`;
|
||||
live box `immense-voyage.local` on `:58`. Migrations through 0025; four SDKs published; two public sites
|
||||
(keysat.xyz, docs.keysat.xyz) live. `keysat-registry-landing` deleted this session — local + all refs gone;
|
||||
the GitHub + Gitea remote repos still need operator deletion (gh needs `delete_repo` scope).
|
||||
(keysat.xyz, docs.keysat.xyz) live. `keysat-registry-landing` local + refs gone; the GitHub + Gitea remote
|
||||
repos still need operator deletion (gh needs `delete_repo` scope).
|
||||
|
||||
- **This session — documentation audit + fix sweep across every public repo and both sites** (all committed +
|
||||
pushed to GitHub + gitea; sites redeployed and verified live): daemon docs → 0.2.0 (admin-UI replaces the
|
||||
removed StartOS actions, Zaprite shipped, roles, runtime image, validate reasons); SDK READMEs fixed (the
|
||||
Rust crate name/version was a copy-paste blocker) and expanded (TS/Python tiers, seats, free-license);
|
||||
landing SDK snippets + tier-card fallback prices; docs change-tier example + install-step resequence;
|
||||
Makefile pins `ARCHES=x86 arm`. No daemon source touched.
|
||||
- **This session — adjudicated the parked P2/P3 backlog** (ROADMAP-only, no source touched). Commit `601ccea`
|
||||
in `keysat-root` is local but **NOT yet pushed** — Gitea host `immense-voyage.local` was unreachable
|
||||
(off-LAN); retry `git push gitea main` when back on the box's network. Verdicts: dropped the design
|
||||
structural + token-gap tiers; reframed the manual Zaprite webhook "sandbox pass" into a small automated
|
||||
routing test (DO, ready plan in ROADMAP); dedup-cache → lean DROP pending one sandbox check; the 3 design
|
||||
"blocker" CSS one-liners → lean DO (need an owner glance — public/admin visuals).
|
||||
|
||||
- **Start9 Community Registry:** functional criteria pass; remaining gap is a `prepare.sh` for the clean-Debian
|
||||
first build (+ on-box verification) (ROADMAP). (Note: `registry.keysat.xyz` works as a marketplace on a Start9
|
||||
box; a plain browser/curl GET 404s **by design** — no HTML page is served there. Not an outage.)
|
||||
- **New top payments item (surfaced by the adjudication):** `try_auto_charge_zaprite` returns `Ok(true)` on
|
||||
any HTTP 2xx, so a Zaprite 200 carrying a FAILED/DECLINED/EXPIRED status silently lapses the subscription.
|
||||
Safe fail-safe fix needs no prod data; now the highest-priority payments item in ROADMAP.
|
||||
|
||||
- **Next (priority):** 1) Operator data action (master key): grant `unlimited_merchant_profiles` to Pro/Patron
|
||||
on live master (steps in Open TODOs). 2) Delete registry-landing GitHub + Gitea remotes. 3) 3 multi-profile
|
||||
UIs + split `audit:read`.
|
||||
- **Next (priority):** 1) Push `601ccea` to Gitea once reachable. 2) Operator data action (master key): grant
|
||||
`unlimited_merchant_profiles` to Pro/Patron on live master (Open TODOs). 3) Fix the auto-charge silent-lapse
|
||||
bug. 4) The 3 design blocker one-liners + the webhook routing test. 5) Delete registry-landing remotes.
|
||||
|
||||
- **Tests/build:** docs-only session, no code touched; last full suite green (lib/api/subscriptions/upgrades/
|
||||
worker/crosscheck/migrations through 0025), `cargo check` + `npm run check` clean. Debt (P2/P3) in ROADMAP.
|
||||
- **Tests/build:** ROADMAP-only session, no code touched; last full suite green (through migration 0025),
|
||||
`cargo check` + `npm run check` clean. Debt (P2/P3) in ROADMAP.
|
||||
|
||||
Reference in New Issue
Block a user