add cursor-based pull events: clide events --since <cursor> (T-223)

The one-shot request/response complement to the never-returning
`tail --events` stream — what an agent poll loop wants. The IPC server now
keeps a single global, arrival-ordered event log keyed by a monotonic
cursor (alongside the per-subsystem replay ring), bounded by eventLogDepth
with drop-oldest back-pressure (D-85: producer never blocks).

`clide events [--since <cursor>] [--filter X]` returns events after the
cursor, a high-water `cursor` to poll from next, and `gap: true` (+
oldestCursor) when the requested cursor predates the retained window so a
caller detects loss instead of silently missing dropped events. Repeated
polls neither drop nor duplicate. No on-disk persistence.

`events` is handled in the IPC server like `tail` (not the dispatcher);
added to the argv umbrella set. bindingWhen/CommandContribution untouched.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-06 21:24:34 +02:00
co-authored by Claude Opus 4.8
parent 1fefd26ef0
commit d6dccd841b
5 changed files with 291 additions and 3 deletions
+4
View File
@@ -18,6 +18,10 @@ heading, and (b) bumping `pubspec.yaml` `version:` in the same commit.
### Added
- `clide events --since <cursor> [--filter X]` reads events after a cursor and
returns them plus a next-cursor — the pull-based complement to the
`tail --events` stream, made for agent poll loops. Reports `gap: true` when
the cursor has aged out of the in-memory ring (D-85). (T-223)
- "Install 'clide' command in PATH" command (`clide.installCli`) copies the
bundled C client to `~/.local/bin`, VS Code style. On launch clide warns when
`clide` is missing from PATH or points at the GUI bundle instead of the CLI