side-quest 2.6.0: /side-quest:reset command + synced, confirmed reset-ledger #5

Merged
trtmn merged 1 commit from side-quest-reset-command into main 2026-08-27 19:33:38 +00:00
Owner
  • New /side-quest:reset (commands/reset.md) — wraps xp.sh reset-ledger, always shows current total + target and gets an explicit yes from the user first.
  • reset-ledger now requires --yes. Without it: prints a pool-wide-impact warning and exits 1 without changing anything (dry run). Behaviour change from 2.5.0.
  • reset is now a synced event kind. reset-ledger publishes a reset event on sidequest/xp/events (online machines adopt within seconds) plus the retained sidequest/xp/state snapshot (offline/new machines on next sync). apply_event -> _apply_reset_event adopts the carried total up OR down only when the event epoch is newer than local; idempotent, no-op on stale epoch. Previously reset-ledger only touched retained state.

119 tests pass, ruff clean. Commit bbc7fa7 is unsigned (1Password agent unreachable in-session).

- **New `/side-quest:reset`** (`commands/reset.md`) — wraps `xp.sh reset-ledger`, always shows current total + target and gets an explicit yes from the user first. - **`reset-ledger` now requires `--yes`.** Without it: prints a pool-wide-impact warning and exits 1 without changing anything (dry run). Behaviour change from 2.5.0. - **`reset` is now a synced event kind.** `reset-ledger` publishes a `reset` event on `sidequest/xp/events` (online machines adopt within seconds) plus the retained `sidequest/xp/state` snapshot (offline/new machines on next sync). `apply_event` -> `_apply_reset_event` adopts the carried total up OR down only when the event `epoch` is newer than local; idempotent, no-op on stale epoch. Previously reset-ledger only touched retained state. 119 tests pass, ruff clean. Commit bbc7fa7 is unsigned (1Password agent unreachable in-session).
- new commands/reset.md: wraps reset-ledger, always confirms with the user
- reset-ledger now requires --yes; without it prints a pool-wide-impact
  warning and exits 1 (dry run). Behaviour change from 2.5.0.
- 'reset' is now a synced event kind: reset-ledger publishes a reset event
  on sidequest/xp/events (online machines adopt within seconds) as well as
  the retained state snapshot (offline/new machines on next sync).
  apply_event -> _apply_reset_event adopts the carried total up OR down
  only when epoch is newer; idempotent, no-op on stale epoch.
- 119 tests pass, ruff clean
trtmn merged commit bbc7fa716c into main 2026-08-27 19:33:38 +00:00
Sign in to join this conversation.
No reviewers
No labels
CR1
CR2
CR3
CR4
CR5
P0
P1
P2
P3
P4
P5
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
trtmn/agent-plugins!5
No description provided.