You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Three bookkeeping fixes that share an axis (memory hygiene + spec
§6.3/§7.6 buffer sizing) and motivate the same new options:
- `ArcpServerOptions.EventLogCapacity` (default 4096) sizes the
session-scoped `EventLog` AND the per-job subscription-history
buffer. Previously the per-job buffer was hard-coded at 1024, so
subscribers with `history: true` saw a shorter window than resumers
— inconsistent with spec §7.6 "same buffer window".
- `ArcpServerOptions.TerminalJobRetentionSec` (default 600) bounds how
long terminal jobs hang around in `_jobs` / `_idempotency`.
`JobManager.ScheduleTerminalCleanup` evicts them after the window.
Previously these dictionaries grew without bound for the lifetime
of the runtime.
- A background `PeriodicTimer`-driven sweeper in `ArcpServer` purges
expired resume tokens, their reverse-index entries, and dormant
session shells. Cancelled on `DisposeAsync`. Previously only
cleaned opportunistically on lookup.
Plumb the three values through the `JobManager` constructor; bump the
public-API tracker accordingly.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments