Commit Graph

36 Commits

Author SHA1 Message Date
Keysat 833d0235f9 Reconcile DESIGN.md debt note: admin SPA can't @import (rust-embed)
The palette-consolidation task was dropped during the 2026-06-18 adjudication
because the rust-embedded admin SPA can't @import at runtime, so consolidation
there is a verbatim re-copy that removes no duplication. Update the §9 debt note
accordingly and drop the now-stale ROADMAP pointer.
2026-06-18 08:31:18 -05:00
Keysat b7a07f981c Reconcile state after shipping design blockers in 0.2.0:59
ROADMAP: remove the resolved Design (contract conformance) section — the three
blockers shipped (admin SPA in :59, landing buy button on keysat.xyz) and the
structural + token tiers were dropped during adjudication. Current state: live
is now :59, blockers done; the Zaprite auto-charge silent-lapse bug is the top
remaining payments item.
2026-06-18 08:12:52 -05:00
Keysat 17b6749254 Drop Zaprite contact dedup-cache item (adjudicated DROP)
Owner confirmed the lean-DROP verdict without the sandbox check: the harm is
cosmetic (duplicate rows in the operator's Zaprite contact list) and the fix is
HIGH blast radius on the money path. Recoverable from git history if real
recurring revenue ever makes it worth it.
2026-06-18 07:34:38 -05:00
Keysat 0007f917b9 Update Current state after backlog adjudication 2026-06-18 07:07:19 -05:00
Keysat 601ccea39c Adjudicate parked low-priority backlog items to verdicts
Ran the investigate→debate→judge pipeline over 4 parked ROADMAP items.

DROP:
- Design "structural" tier (palette consolidation): the rust-embedded admin
  SPA can't @import a shared file, so consolidation is a verbatim re-copy that
  doesn't remove the duplication it targets; the drift it guards is hypothetical.
- Design "token gaps" tier: manual churn across untested public surfaces, and
  the audit was partly mis-specified (#d4b985/#a6b7cf are token values, not
  hardcoded literals).

DO (low blast radius):
- Reframe the manual "Zaprite sandbox pass" for multi-profile webhook routing
  into an automated regression test — routing is a deterministic provider-id
  PK lookup with an anti-forgery backstop, but the path-keyed route has zero
  automated coverage on the money path.

ESCALATE:
- Zaprite contact dedup cache → lean DROP: cosmetic, unverified harm (Zaprite
  dedup-on-email is undocumented); fix is HIGH blast radius on the money path.
  Gated on one cheap sandbox check.
- Design "blocker" tier (3 gold-fill / pill-radius one-liners) → lean DO,
  pending an owner glance since they alter public/admin visuals.

Replaces the "harden Zaprite failure-body shapes" item (already satisfied for
non-2xx) with a bug the investigation surfaced: try_auto_charge_zaprite returns
Ok(true) on any 2xx, so a 200 carrying a FAILED/DECLINED/EXPIRED status
silently lapses the subscription. Elevated above the other parked payments
items; safe fail-safe fix needs no prod data.
2026-06-18 06:49:01 -05:00
Keysat f036871111 Trim Start9 submission list to the prepare.sh gap
Icon-render and the source-available license are intentionally not blockers.
2026-06-17 16:40:24 -05:00
Keysat 34f0783519 Update Current state and ROADMAP after the doc-audit sweep
Record the cross-repo documentation fixes, registry-landing removal, and the
Start9 submission blockers. A plain GET to registry.keysat.xyz 404s by design
(StartOS registry protocol only), not an outage.
2026-06-17 16:27:40 -05:00
Keysat 391cf68b91 Drop registry-landing; fix public-site list and activate-template label 2026-06-17 15:25:05 -05:00
Keysat 4360b03650 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).
2026-06-17 13:00:47 -05:00
Keysat 69c2cdeadf Current state: combined onboarding run validated; sites refreshed
The gate-a-paid-product + buyer-pays journey now validated as one run (was
separate). Record the agent.html money-path + landing example-prompt additions
and the publish.sh-vs-deploy-sites.sh distinction; drop the done "combined run"
from Next.
2026-06-17 12:19:31 -05:00
Keysat 47db41a238 Handoff: ship 0.2.0:58 agent-payment-connect; document the connect gate
Current state rewritten to :58-shipped (both onboarding stages completed-clean,
validated separately); payments guide gains the scoped (agent) BTCPay connect
sandbox-gate section (two-gate fail-closed design, migration 0025, GET-callback
status gotcha, regtest validation facts); guide index flags it for the connect
gate + migrations 0024-0025.
2026-06-17 10:49:36 -05:00
Keysat 316d4c961c Default site deploys to all public sites
Recommend the no-arg deploy-sites.sh (landing + docs + registry-landing) over a
single-site deploy, so every public page stays at its repo's latest and nothing
drifts even when only one site changed.
2026-06-17 09:59:54 -05:00
Keysat 1821af7d59 Index onboarding-harness in layout; tighten Stage 1 Current state 2026-06-16 23:10:31 -05:00
Keysat 0813e90510 Record onboarding harness + Stage 1 result; scope Stage 2
Current state: the onboarding doc-harness and its Stage 1 completed-clean
result. ROADMAP: spell out Stage 2 (regtest buyer-pays) under the
agent-payment-connect item. Drop the resolved GET /v1/admin/products 405
debt item.
2026-06-16 22:48:17 -05:00
Keysat 1788c9b082 Handoff: phase-2 foundation + payment-connect spec/roadmap 2026-06-16 21:18:57 -05:00
Keysat 6dc5c8a740 Document publish.sh make-install deploy step (now step 5) 2026-06-16 20:05:54 -05:00
Keysat d4ad8c3fa7 Update Current state: 0.2.0:57 shipped (merchant-onboard role) 2026-06-16 19:25:24 -05:00
Keysat 62db8c81f3 Record merchant-onboard scoped-key role in Current state 2026-06-16 18:56:09 -05:00
Keysat a257394c01 Drop ROADMAP items resolved in :55/:56 (universal multi-arch publish, manifest license) 2026-06-16 14:25:08 -05:00
Keysat ee84809e38 Mark 0.2.0:56 live on immense-voyage.local; refresh Current state 2026-06-16 14:21:39 -05:00
Keysat 5b3322413f Fix scoped-API-key panel doc drift; add unlimited_merchant_profiles operator TODO 2026-06-16 13:05:28 -05:00
Keysat 532229d488 Add design/ contract; archive prior design system as provenance
Establish keysat's durable, vendor-neutral design contract (the standards
/design backfill, document-as-is):

- design/DESIGN.md — nine-section brand brief distilled from the prior
  Claude Design system (navy-on-cream-paper identity, sovereignty-first
  voice, component + motion rules, do's/don'ts). Manrope is canonical
  display (the README's "Archivo" was a stale placeholder).
- design/tokens.tokens.json — W3C DTCG tokens from colors_and_type.css.
- design/brand/ — canonical palette.css + logo/mark assets.
- design/_imports/2026-06-16-claude-design-system/ — the original system,
  relocated as dated provenance (nothing imported it).
- AGENTS.md — add the Design line (read the contract before UI work);
  repoint the layout entry.
- ROADMAP.md — design-checker cleanup backlog (gold-as-fill + pill-radius
  blockers, the inline-token-copy consolidation, token gaps).
2026-06-16 11:29:28 -05:00
Keysat ce5edaed29 Record product→merchant-profile write path; refresh Current state
Document the now-functional product→profile write path in the payments
guide (set_product_merchant_profile, post-write pattern, picker gating,
double-Option clear). Mark the multi-profile GAP closed, drop the done
work-queue item, and note the discovered set_product_entitlements_catalog
rows_affected gap.
2026-06-15 21:40:25 -05:00
Keysat ef8b0aae21 Update memory path after repo move to ~/Projects/keysat 2026-06-15 13:01:15 -05:00
Keysat fc37b2d46b Mark 0.2.0:55 shipped; record refund scrub; clear resolved StartOS-blocker debt
Registry now publishes :55 (universal multi-arch, verified). Public docs
scrubbed of refund copy (Keysat has no refund feature). All 4 StartOS
submission blockers resolved and shipped.
2026-06-13 07:00:08 -05:00
Keysat 9c3ddc01e7 Fix doc drift; document no-enforce-mode and universal publish
Corrections surfaced by doc-auditor + start9-spec-checker:
- testing.md: api suite 47 -> 54
- payments.md: FK enforcement confirmed at db/mod.rs:29
- startos-packaging.md: publish.sh now ships a universal s9pk
- licensing-tiers.md: record enforce-mode retirement and Creator caps
Refresh Current state for the StartOS submission-blocker work.
2026-06-13 06:40:06 -05:00
Keysat 6d4efc8a33 Record scoped-keys + settle-tripwire work; document boundary and TODOs
Update Current state for the two P1 fixes done this session (source-only,
awaiting :55). Document the advisory settle-amount tripwire in payments.md. Add
Open TODOs: split audit:read into its own scope tier, and build the admin API-keys
management panel (both deferred to later sessions).
2026-06-13 00:10:53 -05:00
Keysat ffdb59aa8f Document P0 webhook fix + test seam; ship :54; track EVALUATION.md 2026-06-12 22:42:29 -05:00
Keysat be7dfa5d8c Triage full-eval findings into Current state: work queue / known debt / deferred 2026-06-12 21:58:43 -05:00
Keysat ac2aa85b7e Note product→profile write-path gap and scope the picker; record red-test + FK decisions 2026-06-12 21:35:13 -05:00
Keysat 9d8a60af96 Update current state: 0.2.0:53 shipped to prod and registry 2026-06-12 20:50:38 -05:00
Keysat 35ee302592 Refresh current state and document per-repo git remotes
Rewrite the Current state section after the merchant-profile bug-fix session and
record that the daemon repo's main tracks GitHub (origin) with a gitea backup,
while root + plans are Gitea-only — check remotes before pushing.
2026-06-12 20:16:24 -05:00
Keysat f574f025a6 Restructure AGENTS.md into scoped guides
Trim AGENTS.md to whole-repo, every-session facts (154 -> 110 lines) and move
subsystem guidance into docs/guides/*.md, each with paths: frontmatter and a
one-line index entry in AGENTS.md. Symlink each guide from .claude/rules/ so
Claude Code lazy-loads it by matching path; track those symlinks via a
.gitignore exception (.claude/settings.local.json stays ignored).
2026-06-12 19:39:41 -05:00
Keysat 576213b0ce Add AGENTS.md, CLAUDE.md symlink, and ROADMAP.md
Agent-onboarding doc for the workspace: stack, build/test/run commands,
directory layout, conventions, and always/never gotchas, plus a Current
state section. CLAUDE.md symlinks to AGENTS.md so Claude Code auto-loads
it. Longer-term backlog lives in ROADMAP.md.
2026-06-12 18:16:22 -05:00
Keysat dd9503823d Backup 2026-06-12 17:53 2026-06-12 17:53:55 -05:00
Keysat 843ff0e5d7 Initial backup of root workspace files
Glue files not covered by subproject repos: top-level docs, logo,
keysat-design-system, and crosscheck tests. Subproject folders are
gitignored (each has its own Gitea remote).
2026-06-12 17:51:40 -05:00