Added
- Session handoff instead of compaction. Every harness session keeps a task checkpoint (
state/<harness>--<session>.md: goal, next step, latest tool calls, decisions, files edited, todos, statusopen/done/picked_up), updated by the autobank as the transcript grows. Pastcontext.handoffAt(default: half the context window or 100k tokens, whichever is smaller; a token count,"40%"oroff), measured from the transcript's real usage, Claude Code's newStophook asks the model to save a handoff withmemory_bankand send you to/clear, and omp tells you to start/new. APreCompacthook (Claude Code, Codex, omp) saves the handoff as a bank entry taggedhandoffand skips an automatic compaction while the context is under 90% of the window;/compactand near-limit compactions go ahead. The next session (startup,/clear, after a compaction) gets the newest open handoff first in its brief, then marks it picked up. The service adds the new hooks to existing installs. hnl tasksbreaks a long or rambling request into separate requirements, grouped into five phases (investigate, implement, verify, check automatically, validate in use), and saves the plan so a new session can pick it up.- The command is
hnl. Help, hints and errors sayhnlwhichever installed name you ran (superpi,harnesslinkandhlkstill work), and shell completions registerhnl. Harness configs, hooks and the background service keep runningsuperpi, which every install has. - The SessionStart brief carries the work-state snapshot of this session, else the most recently modified open one (it used to take the alphabetically last file), and is now up to 9,500 characters for Claude Code and omp and 7,000 for Codex (was 4,000).
Fixed
hnl daemon status,stopand the newrestartact on the supervised service (launchd, systemd, logon task);statusused to say "stopped" while it ran, and shows the running build.hnl updaterestarts a service still running an older build, even when the CLI itself was already current.
Removed
- The gateway's context monitor (added in 17.5.62): it put its advice in response headers that no harness reads, and guessed token counts from text length. Session handoff (above) uses the real token counts and acts through each harness's own hooks.