openclaw/docs/cli
Peter Steinberger 1ea2640f54
refactor(state): consolidate wide rows, plugin index, workspace attestations, and shared auth singletons at schema v13 (#130466)
* refactor(state): make cron and subagent rows JSON-canonical

* refactor(state): make gateway origin device tokens canonical at v13

The lazy ensure predates the table joining the canonical schema; at the
v13 bump the schema owns creation, so the feature-local DDL, WeakSet
dedupe, and lazy-list entry retire. The legacy-file guard the ensure
carried stays at each call site.

* test: drop obsolete lazy-ensure coverage for origin device tokens

The table is canonical at v13; same-version lazy creation no longer
exists to protect. Origin CRUD, isolation, and rotation coverage remains
in the surviving cases.

* refactor(state): fold installed_plugin_index into config_machine_state

The singleton index row becomes one JSON value under
plugins.installedIndex with its rollback-fencing revision inside the
value; reads, CAS restore, and the lease-held write transactions use
direct Kysely on config_machine_state so the state_leases assertion
stays in-transaction. The v13 migration imports the row and drops the
table; the additive workspace_dir entry folds with it. Doctor guidance,
docker staging, and the e2e probes name the machine-state row.

* refactor(state): merge workspace_attestations into workspace_setup_state

One row per workspace now carries both setup milestones and the
attestation clock: nullable setup columns represent attestation-only
workspaces (replaceWorkspaceAttestation can precede any setup write) and
setupExists derives from a non-null version. The bootstrap-hash FK
repoints to the merged table; migration receipts keep the historical
workspace_attestations discriminator string. The v13 migration grows and
rebuilds the table, merges attestation rows (orphans without a path
alias drop — their hashes re-derive at the next bootstrap attestation),
and the consolidation kind is renamed state-consolidation-v13 to cover
the batch.

* test(state): cover the workspace merge and consolidation fallout

The v12-to-v13 regression seeds merged, attestation-only, and orphan
attestation workspaces; the 13-to-12 downgrade fixture recreates
workspace_attestations and installed_plugin_index from the folded data;
the fold-in migration gates the additive workspace_dir column for
pre-additive rows; the workspace merge now triggers on the setup table's
own shape so stable-era databases without an attestations table still
reshape; the consolidation applied-message covers the batch.

* refactor(state): fold shared auth profile singletons into config_machine_state

The shared-state auth_profile_stores/auth_profile_state rows (fixed key
'shared') become authProfiles.store/authProfiles.state machine-state
values; the agent-DB tables of the same names are untouched. Git-backup
redaction moves from table-drop to the authProfiles. secret prefix with
seeded-secret absence proof; migration receipts keep the historical
table-name discriminators; the shared-auth relocation and receipt
verification project the KV cells back to the receipt-era row shapes so
persisted digests stay byte-compatible. mcp_oauth_stores stays a table —
its multi-key fold is a named follow-up.

* test(state): finish shared-auth fold coverage and annotate boundary casts

Auth seeders and assertions across the e2e/scripts/secrets suites target
the authProfiles machine-state cells; the v12-to-v13 regression proves
payload-byte fidelity, non-shared-row drop, and insert-if-absent
precedence; the downgrade fixture recreates and repopulates both v12
tables. Boundary type assertions in the plugin-index store carry SAFETY
invariants per the ratchet.

* chore: shrink assertion-safety baseline for plugin-index store

* refactor(doctor): delete the dead onboarding-recommendations migration

Its input — the unscoped 'primary' onboarding row — existed only between
9a93a52a8a and 473962b7de, a two-day beta window; no shipped stable
can produce it and the runtime table folded away at v12. The audit
backup list keeps recognizing system-agent.jsonl artifacts because beta
installs that ran that import may still carry its backups.

* docs: sync the 13-to-12 downgrade example with the executable fixture

* style: format the synced downgrade example

* style: drop unused import and duplicate union constituent

* fix(state): keep orphan attestations across the v13 workspace merge

The merged workspace_setup_state required a workspace path, but legacy
orphan hashed-key attestations never recorded one. workspace_path is now
nullable (setup rows still enforce it via CHECK), the v13 migration and
the doctor file import keep orphans with a NULL path that heals on the
next live access, and the 13-to-12 downgrade keeps attestation-owned
hashes. Doctor test seeds move to the folded KV row.

* perf(state): retire unused cron indexes

* fix(state): preserve v13 migration recovery

* fix(state): preserve v12 lazy-table upgrade

* docs(state): document v13 auth relocation

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-08-27 15:26:14 +08:00
..
acp.md feat(docs-ci): validate docs config examples against the schema (#121336) 2026-08-10 07:57:56 -07:00
agent.md fix(cli): exit non-zero when an agent turn fails (#125557) 2026-08-17 21:31:25 -07:00
agents.md fix(agents): remove a deleted agent's cron jobs on the offline delete path (#127075) 2026-08-21 00:31:17 -07:00
approvals.md fix(exec): scope reusable approvals to their working directory (#129636) 2026-08-25 18:24:14 -07:00
attach.md feat: continue dashboard sessions from CLI URLs (#120893) 2026-08-09 16:44:25 -07:00
audit.md Audit exact-bound owner-native lifecycle receipts (#126082) 2026-08-24 17:49:25 -07:00
backup.md refactor(state): consolidate wide rows, plugin index, workspace attestations, and shared auth singletons at schema v13 (#130466) 2026-08-27 15:26:14 +08:00
browser.md fix(browser): accept common keyboard aliases (#130401) 2026-08-26 15:12:37 -07:00
channels.md fix(cli): honor channel resolve agent ownership (#125109) 2026-08-16 23:50:52 -07:00
clawbot.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
claws.md fix(claws): recover lifecycle state safely (#123254) 2026-08-14 20:52:45 -07:00
completion.md docs(completion): document ZDOTDIR profile path (#125247) 2026-08-17 04:31:21 -07:00
config.md docs: correct directory JSON failure envelope (#124989) 2026-08-24 12:48:27 -07:00
configure.md fix: share managed Gateway startup readiness across setup (#130682) 2026-08-27 00:11:32 -07:00
connect.md feat(cli): prepare session-host onboarding (#125879) 2026-08-18 16:08:48 -07:00
crestodian.md feat(setup): rename Crestodian to OpenClaw system agent 2026-07-14 11:03:02 -07:00
cron.md fix(cron): prune terminal task history after seven days (#126095) 2026-08-21 00:10:11 -04:00
daemon.md feat(daemon): support Bun 1.4 managed services (#129593) 2026-08-26 00:45:43 -07:00
dashboard.md docs: document control ui owner handoff 2026-08-06 02:21:45 +01:00
devices.md fix: make gateway token recovery usable from macOS onboarding (#118051) 2026-08-02 10:06:50 -07:00
directory.md docs: correct directory JSON failure envelope (#124989) 2026-08-24 12:48:27 -07:00
dns.md docs: replace retired config keys with canonical schema keys (#121330) 2026-08-09 20:30:43 -07:00
docs.md feat(cli): support --json across reporting commands (#117928) 2026-08-02 02:56:08 -07:00
doctor.md fix(exec): scope reusable approvals to their working directory (#129636) 2026-08-25 18:24:14 -07:00
fleet.md refactor(fs): adopt fs-safe 0.5 core primitives (#113705) 2026-07-28 03:41:47 -04:00
flows.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
gateway.md feat(daemon): support Bun 1.4 managed services (#129593) 2026-08-26 00:45:43 -07:00
health.md fix(delivery): keep failed queue rows payload-free (#123642) 2026-08-14 06:22:51 -07:00
hooks.md docs(hooks): clarify setup and execution contracts (#130734) 2026-08-26 23:12:06 -07:00
index.md feat(cli): add openclaw triage for sanitized agent debugging handoffs (#128756) 2026-08-25 00:12:32 -07:00
infer.md fix(cli): reject missing repeatable inference inputs (#130608) 2026-08-26 19:55:41 -07:00
logs.md fix: preserve Gateway error reasons in text logs (#130645) 2026-08-26 22:10:26 -07:00
mcp.md fix(mcp): revoke resource access with app authority (#129550) 2026-08-25 14:04:14 -07:00
memory.md fix(memory): stop false Copilot index mismatch warnings (#130603) 2026-08-26 19:50:15 -07:00
message.md fix(telegram): support polls lasting up to seven days (#129461) 2026-08-25 17:36:11 -07:00
migrate.md fix(codex): guide recovery from unimported agent auth (#116807) 2026-08-01 07:08:02 -06:00
models.md fix(cli): reject --agent for global model refresh (#130448) 2026-08-27 14:25:44 +08:00
node.md refactor(state): fold singleton tables into config_machine_state at schema v12 (#129876) 2026-08-26 13:32:19 -07:00
nodes.md refactor(canvas): make the panel a widget presenter (#126030) 2026-08-19 08:21:07 -07:00
onboard.md feat(daemon): support Bun 1.4 managed services (#129593) 2026-08-26 00:45:43 -07:00
openclaw.md feat(agents): unify agent status into a durable progress_card (#125125) 2026-08-17 09:44:04 -07:00
pairing.md feat(ui): manage DM pairing requests in Channels (#112401) 2026-07-22 04:54:20 -07:00
path.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
plugins.md refactor(state): consolidate wide rows, plugin index, workspace attestations, and shared auth singletons at schema v13 (#130466) 2026-08-27 15:26:14 +08:00
policy.md fix(auth): keep a retired auth JSON from stranding a migrated store (#126562) 2026-08-20 00:42:41 -07:00
promos.md feat(cli): add openclaw promos to discover and claim ClawHub promotional model offers (#100236) 2026-07-07 01:10:42 -06:00
proxy.md feat(cli): support --json across reporting commands (#117928) 2026-08-02 02:56:08 -07:00
qr.md fix(gateway): reject unattributable loopback proxy traffic [AI] (#119950) 2026-08-16 21:01:20 -07:00
reset.md fix(cli): refuse live state reset and uninstall (#125253) 2026-08-17 09:44:31 -07:00
resume.md feat: continue web sessions in the terminal (#122870) 2026-08-12 17:07:48 -07:00
sandbox.md fix(sandbox): restore reliable OpenShell execution and workspace integrity (#130031) 2026-08-26 03:10:07 -07:00
secrets.md docs(secrets): make the credential-request tool discoverable and warn about empty hosts (#130299) 2026-08-26 11:56:12 -07:00
security.md fix(security): warn on main-scoped group rooms (#125054) 2026-08-17 00:37:35 -07:00
sessions.md fix(cron): prune terminal task history after seven days (#126095) 2026-08-21 00:10:11 -04:00
setup.md fix(onboard): reject local gateway credentials in remote mode (#127015) 2026-08-20 22:22:16 -07:00
skills.md fix(skills): record skill usage again and retire dead curator tables (#129769) 2026-08-26 01:06:06 -07:00
status.md fix(status): keep explicit fleets ownerless in diagnostics (#123831) 2026-08-14 14:54:52 -07:00
system.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
tasks.md fix(tasks): blocked completion outcomes cannot be filtered (#129196) 2026-08-25 03:02:11 -07:00
transcripts.md fix(discord): bind transcript capture to source account [AI] (#118579) 2026-08-15 12:10:43 -07:00
triage.md feat(cli): add openclaw triage for sanitized agent debugging handoffs (#128756) 2026-08-25 00:12:32 -07:00
tui.md feat(gateway): reach a Gateway behind an identity-aware proxy from the CLI (#125700) 2026-08-18 03:29:56 -07:00
uninstall.md fix(install): avoid success after incomplete lifecycle changes (#125992) 2026-08-18 20:50:15 -07:00
update.md fix: stop --tag main from failing during npm pack (#125949) 2026-08-18 12:22:45 -07:00
voicecall.md fix(voice-call): keep Funnel off occupied HTTPS ports (#125552) 2026-08-17 21:04:17 -07:00
webhooks.md docs(hooks): clarify setup and execution contracts (#130734) 2026-08-26 23:12:06 -07:00
wiki.md fix(wiki): accept --agent for agent-scoped vaults (#117943) 2026-08-02 03:33:15 -07:00
workboard.md fix(workboard): avoid duplicate proof entries on completion (#111324) 2026-07-19 03:00:37 -07:00
worker.md fix(agents): keep embedded prompts isolated from ambient files (#110776) 2026-08-26 19:53:59 -07:00