Changed
- omp sessions stay small instead of growing until the context window is full. Past
context.handoffAt(by default half the context window or 100k tokens, whichever is smaller) HarnessLink compacts the session in place with its own summary: your requests word for word, the task checkpoint, the previous summary, the files read and modified, and a pointer tomemory_search,memory_getandsession_getfor anything older. It needs no model call. The main session compacts when a turn is over, a subagent between its tool turns, once each time it crosses the threshold. Before, HarnessLink cancelled omp's compaction until 90% of the window and only suggested/new, which nobody could act on from a subagent: sessions reached 855k tokens, and because every request reads the whole context again, requests above 200k made up 62% of model spend. Every omp compaction saves the handoff first and is never cancelled; without a checkpoint, or on any error, omp's own summarizer runs;handoffAt: offturns it off. Claude Code and Codex are unchanged. hnl gateway connecttells omp that the gateway forwards to Anthropic unchanged (compat:signingEndpoint: true,replayUnsignedThinking: false,supportsEagerToolInputStreaming: true). Behind the gateway address omp treated Anthropic as an unknown proxy: it turned off eager tool-input streaming and replayed unsigned thinking until the API rejected the request. Flags you set yourself are kept, and disconnect removes only what connect added. The 1-hour cache stays off: on measured traffic, the 5-minute cache with keep-warm is cheaper.- The website and dashboard show only real information. The home page's architecture section no longer has a mock live-telemetry panel (frame rate, node counts, "active" lights), and its figures are facts or marked as measured on our machines, with the real gateway port and recall command. A new account sees a correct first-run state on every page: no references to the old built-in agent, no "Manually assigned" or "All seats filled" on the Free plan, Ask on Free shows only the upgrade card, and Setup counts only the required steps. Harness, provider, device and platform names replace raw ids throughout History, Sessions, Runs, Usage, Devices, Settings, the team audit log and Policies, and failed loads show an error with Retry instead of an empty page. The privacy note in Settings describes what is really stored, Pricing drops an unsupported "Popular" badge, and Integrations list the official MCP servers.
- The public guides (using, installing, memory banking, what is captured from each harness) use
hnlthroughout and no longer contain internal references, source paths or history notes; some section links within them changed. Plan descriptions say Free covers up to two devices and Enterprise offers self-hosting by arrangement.
Fixed
- A HarnessLink CLI using a different config folder (an alternate
HARNESSLINK_CONFIG_DIR,PI_CODING_AGENT_DIR, profile orHOME), or one run from a temporary folder, could replace the machine's background service with itself. A test run did this: the replacement was signed out, so for 80 minutes every model call on the machine was refused with "sign-in required" and no session synced, until the nexthnl cloud login. Installing, removing or restarting the service from such a CLI is now refused with a pointer tohnl daemon runin the foreground, andsuperpi mcpstarts the service only when nothing answers on the gateway port; a running service, whatever its build, is never replaced from an MCP session. - Windows installs now create
hnl.cmdnext tosuperpi,harnesslinkandhlk(left out, likehlk, when another program already uses the name), so the command the website and guides use works on Windows. - A subagent's work-state checkpoint shows its assignment as the goal instead of "no prompt recorded"; a prompt a person types still takes precedence.