fix: [ENG-2884] disclose v1-stub status on dream sessions/cancel
Both subcommands are intentional v1 placeholders — the daemon doesn't
persist session state, so dream sessions always returns [] and dream
cancel is a no-op. The previous surface advertised them as if they
were functional: descriptions said 'List active...' / 'Discard a...',
JSON envelopes returned success-looking shapes ({sessions: [], status:
ok} / {status: cancelled}), and machine-readable consumers that
branched on the response had no way to know the daemon was never
consulted.
This is a cheap-honesty fix, not a real persistence implementation.
Real persistence is a separate ticket.
Changes:
- DreamSessions.description prefixed with '[v1 stub]' and now names
the stateless behavior inline.
- DreamCancel.description prefixed with '[v1 stub]' and now names the
no-op behavior inline.
- Both JSON envelopes gain a 'note' field disclosing v1 status so
machine consumers see the caveat at the same key they'd branch on.
- Topic-root listing in brv dream's run() body flags both subcommands
as '[v1 stub]' in the one-liner hint.
4 tests in test/commands/dream.test.ts cover: each static description
contains 'v1 stub'; each --format json envelope's data.note discloses
stateless / no-op semantics. N
Nguyễn Thuận Phát committed
2e138a6cf66fbd6290275d1723b6228b3ef5088c
Parent: f5566ac