* fix(commitments): report atomic dismissals truthfully * docs(commitments): explain dismissal JSON results --------- Co-authored-by: Peter Steinberger <steipete@macos.shared>
3.0 KiB
summary, read_when, title
| summary | read_when | title | |||
|---|---|---|---|---|---|
| CLI reference for `openclaw commitments` (inspect and dismiss inferred follow-ups) |
|
`openclaw commitments` |
Inspect and dismiss records left by the retired inferred commitments experiment. OpenClaw no longer creates or delivers new commitments, but keeps the maintenance command so upgrades can audit and clean up existing SQLite rows.
With no subcommand, openclaw commitments lists pending commitments.
Usage
openclaw commitments [--all] [--agent <id>] [--status <status>] [--json]
openclaw commitments list [--all] [--agent <id>] [--status <status>] [--json]
openclaw commitments dismiss <id...> [--json]
Options
--all: show all statuses instead of only pending commitments.--agent <id>: filter to one agent id.--status <status>: filter by status. Values:pending,sent,dismissed,snoozed, orexpired. Unknown values exit with an error. Thesnoozedstatus is reserved: no built-in flow currently snoozes a commitment; snoozed records can appear only when imported from legacy state.--json: output machine-readable JSON.
dismiss marks the given commitment ids as dismissed.
Examples
List pending commitments:
openclaw commitments
List every stored commitment:
openclaw commitments --all
Filter to one agent:
openclaw commitments --agent main
Filter by status:
openclaw commitments --status dismissed
Dismiss one or more commitments:
openclaw commitments dismiss cm_abc123 cm_def456
Export as JSON:
openclaw commitments --all --json
Output
Text output prints the commitment count, the shared SQLite database path, any active filters, and one row per commitment:
- commitment id
- status
- kind (
event_check_in,deadline_check,care_check_in, oropen_loop) - earliest due time
- scope (agent/channel/target)
- suggested check-in text
JSON output includes the count, the active status and agent filters, the shared SQLite database path, and the full stored records.
Dismissal output
dismiss changes only active pending or snoozed commitments. Missing,
already dismissed, sent, and expired commitments remain unchanged. Duplicate
IDs are ignored after their first occurrence, and results preserve request order.
When every requested commitment is dismissed, --json returns:
{ "dismissed": ["cm_abc123", "cm_def456"] }
When a request includes stale or inactive IDs, the command reports both results
and exits with status 1:
{ "dismissed": ["cm_abc123"], "notDismissed": ["cm_missing", "cm_expired"] }
If no requested commitment can be dismissed, the command still exits with status
1:
{ "dismissed": [], "notDismissed": ["cm_missing"] }