Breaking Changes
- Team and Enterprise organisations are private unless the owner turns something on. Owners and admins now see only the members list (email, role, team) and the seat count; Devices, Spend, Agent inventory, per-member Activity counts in the team digest and Audit detail (other members' artifact and device names) are separate switches in Settings → Organisation, all off for every organisation including existing ones. While off,
GET /v1/org/devices,/v1/org/spendand/v1/org/inventoryanswer 403visibility_off. Only an owner can change a switch (admins get 403owner_required); each change is audited and every other member gets an email and a dashboard notice. Every member sees "Visible to your org" on the Team page and in Settings → Organisation. Policies, blocked-call events and the policy audit work the same with every switch off. Free and Pro have no sharing. Guide: What your organisation can see (/docs/organisation-visibility). - New plans for new sign-ups; existing accounts keep what they had (ADR-60). Free is now one device, 30 days of searchable history, memory search within one project at a time, no organisation policies and Download my data; Pro adds every device, all your history, memory search across projects and regex in Query and History (continuing a session on another machine, a monthly savings report and saved-query alerts are listed as coming soon); Team adds shared project memory, organisation policies and per-member spend when the owner turns it on (team budgets coming soon); Enterprise lists SSO/SCIM, audit streaming, bulk export, data region, your own keys, legal hold and an SLA on request. Every account that existed before this release keeps two devices, memory across projects, organisation policies and regex (
grandfathered_limits, control migration 0042). For new accounts the limits answer 403feature_gatedwithfeatureandplan(policy writes,/re/searches, memory searches across every project), 403device_limiton device approval (/v1/device/previewwarns first; the mint keeps 429quota_exceededas a backstop).GET /v1/quotareportslimits.history_daysinstead ofretention_days, pluspaid_plan,trialandgrandfathered; the plan table'sretentionDaysishistoryDaysand theself_hostfeature is gone. - Free history is locked, not deleted. History, sessions, Query and Overview hide prompts and transcripts older than 30 days on Free and say how many are locked (
lockedon/v1/history/discoverand/v1/sessions; opening an old session answers 403history_locked). Upgrading shows them again straight away. The retention sweep now deletes Free history only after 365 days (it used to delete after 30); paid plans keep everything.
Added
- New accounts start with 14 days of Pro, no card needed; the dashboard shows a banner with the days left, and the account moves to Free on its own when the trial ends.
- "This week HarnessLink recalled N memories and saved $X": on Overview, as the first line of the weekly digest and as one line at session start (that machine's own figures). Recalls are memory entries actually handed to your harnesses (prompt hook,
memory_search/recall_memory,memory_get, the brief's recall section), counted per hour in gateway.dbrecall_usageand synced with usage; savings are the gateway's exact-cache, cache-assist and keep-warm savings in USD. A figure that is zero or unknown is left out, and the line with it when both are. - Download my data (Settings → Account) on every plan: one ZIP of your history (including locked and archived prompts), memories, session transcripts, usage (including
usage/recalls.jsonl), devices and account, once a day (GET /v1/export/account; a second download within 24 hours answers 429 with when the next one is available). The same endpoint with an API token, andGET /v1/org/exportfor an organisation's owner (members, teams, invites, policies and audit, never members' own data), are part of Enterprise (403feature_gatedotherwise). The privacy notice states the right to export. - Upgrade prompts only where a limit is in the way: a search or setting your plan does not include, locked history on History, and a device over the limit on the link page each show one Upgrade button to Plans. The Plans page shows the trial, the history window and what each plan adds (with Coming soon and On request); the pricing page lists the same catalog. On Free,
memory_searchacross every project answers from this machine and says that the cloud is searched one project at a time. scripts/stripe-catalog-diff.ts: a read-only diff of the Stripe prices the Worker sells against the plan catalog (GET requests only).- History, Memory and Runs are quieter. One way to filter: active filters are chips inside the search field (× or Backspace removes one), a typed
harness:codexor-device:build-boxbecomes a chip once you press space or Enter, and a slim Filters button opens the fields panel on demand (closed by default; Query keeps it open and keeps typed queries as text). The toolbar filter buttons, the pills row and the record view's filter-for/filter-out buttons are gone; links and saved queries keep working unchanged. History picks its workspace with a switcher at the top (search, All, recent) instead of a list on the left, and lists sessions by default — first prompt, prompt count, harness, workspace, last activity — with the conversation in a side panel and Open session; Prompts brings back one row per prompt (GET /v1/history/discover?view=sessionsfor the API). Memory hides project indexes, daily summaries and temporary folders behind Show generated entries instead of showing NOT filters. Memory and Runs no longer draw a histogram. - Team memory per project: an organisation owner can share a project's memory (Settings → Organisation → Team memory, off by default). Every member then reads that project's entries, each labelled with who wrote it, on the Team page, and
memory_searchlists other members' entries in a Team memory section (passauthortomemory_get). Everything else stays per person; members see which of their projects are shared.
Fixed
- Dashboard glitch sweep: on phones the current tab of every tab strip (Settings, Policies, Owner, Team) stays in view, result cards label their numbers, the results footer sits above the tab bar and the session page's turn headers no longer break into fragments. Policies shows every column until a rule is opened. Empty tables show only their empty state. Overview's card tables no longer bleed past the card edge. The Plans summary no longer contradicts a running trial or kept earlier limits. A Pro-gated query shows only the upgrade prompt. The suspended-organisation screen no longer asks for data the server refuses, and the sidebar says "Sync paused". Raw ids and lower-case values in the owner console now show names ("Stripe", the organisation and device names, role names).
- Tables inside a card (Owner console Users, Organisations, Audit and an organisation's Members and Policy, and any card table that scrolls sideways) drew their header 48px too low, over the first row, with an empty band above it. The header is now offset under the top bar only when the page itself scrolls the table; in a card, panel or phone layout it stays at the table's top. History, Memory, Runs, Archive and Query get the same check.
- Expanded records, filter pills, facets and quick filters no longer show or announce raw ids (
dir:01M…:/private/tmp, device ULIDs, thesuperpiharness id). They use the workspace name, hostname or harness name, also for a filter on a value the current results no longer list; each raw id appears once, in its own "Workspace ID", "Device ID", "Session ID" or "Harness ID" row with Copy. A workspace's tooltip shows its remote or folder path instead of its id. - The "Also connects to" links on the home page, /harnesses and the multi-harness guide all reach the tool's own docs again. Windsurf is listed under its new name, Devin Desktop (formerly Windsurf), with Devin's MCP configuration page and its
~/.config/devin/mcp_config.json; DeepSeek Harness's two links no longer 404; Roo Code, Cline, Kilo Code, GitHub Copilot and goose link the pages their docs moved to.bun scripts/check-client-links.tschecks every link answers 2xx on its own host.