Part of #94
Why
appduct events tail and appduct events since have no name filter or payload cap, although the daemon supports both after the earlier slices of #94. A script can't tell from the events since output whether events were evicted or more pages remain.
Expected outcome
appduct events tail [selector] [--name <glob>] [--payload-max-bytes <n>]
appduct events since [selector] <cursor> [--name <glob>] [--payload-max-bytes <n>]
- Both flags pass straight through to
events.subscribe and events.since. Neither has a default, so nothing is truncated unless asked.
- The trailing cursor line of
events since prints { cursor, dropped, remaining } under --json, and cursor: 12, dropped: 0, remaining: 40 (run "appduct events since 12" to resume from here) otherwise, keeping today's resume hint.
- The CLI reference and help list the new flags under both verbs.
Constraints and non-goals
How we know it is done
appduct events tail --name '*_failed' --json prints only matching NDJSON lines.
appduct events since 0 --name '*_failed' --json prints only matching NDJSON lines.
- The
events since cursor line carries dropped and remaining, in both --json and human output.
appduct events tail --json and appduct events since 0 --json do not truncate payloads without --payload-max-bytes, and truncate with it.
Alternatives considered
See #94.
Part of #94
Why
appduct events tailandappduct events sincehave no name filter or payload cap, although the daemon supports both after the earlier slices of #94. A script can't tell from theevents sinceoutput whether events were evicted or more pages remain.Expected outcome
appduct events tail [selector] [--name <glob>] [--payload-max-bytes <n>]appduct events since [selector] <cursor> [--name <glob>] [--payload-max-bytes <n>]events.subscribeandevents.since. Neither has a default, so nothing is truncated unless asked.events sinceprints{ cursor, dropped, remaining }under--json, andcursor: 12, dropped: 0, remaining: 40 (run "appduct events since 12" to resume from here)otherwise, keeping today's resume hint.Constraints and non-goals
How we know it is done
appduct events tail --name '*_failed' --jsonprints only matching NDJSON lines.appduct events since 0 --name '*_failed' --jsonprints only matching NDJSON lines.events sincecursor line carriesdroppedandremaining, in both--jsonand human output.appduct events tail --jsonandappduct events since 0 --jsondo not truncate payloads without--payload-max-bytes, and truncate with it.Alternatives considered
See #94.