Skip to content

v2.16.8

Choose a tag to compare

@nokhodian nokhodian released this 26 Sep 10:03
· 1206 commits to main since this release

[2.16.8] — 2026-09-26

Added

  • The coordinator is warned at 80% of a role's token cap and of the org-wide run_config.budget_tokens. (Follow-up to #343) The one-time 80% warning previously covered only budget_usd. It now also fires once per role per run at 80% of the role's token cap (its own budget_tokens, or its even split of run_config.budget_tokens, on whichever basis the cap is enforced on), and once per run when the whole run passes 80% of run_config.budget_tokens. Each warning is a budget-warning audit event whose data.budget names the budget (budget_usd, budget_tokens or run_config.budget_tokens). See Budget-closed assignees.

Changed

  • MCP result shape: hooks_session-start drops fields that never held real values. (Follow-up to #341) The config block (intelligenceEnabled, hooksEnabled and memoryPersistence, all always true) and sessionMemory.restoredPatterns (always 0) are gone. previousSession no longer has id, tasksRestored or memoryRestored; it now carries the loaded session's sessionId, status, startedAt and, when present, endedAt, summary and metrics.

Fixed

  • hooks_session-start with restoreLatest reports the previous session it actually found. (Follow-up to #341) It returned restored: true whenever restoreLatest was set and a previousSession whose id was made up from the current time minus one day, without looking anything up. It now reads the most recently started session from the sessions store that hooks_session-end updates. It reports restored: true and that session's record only when one exists, and restored: false with previousSession: null otherwise. The session being started is never reported as its own previous session.
  • hooks_model-outcome reports recorded: false when the ledger write fails. (Fixes #346) recordModelOutcome swallowed every error and the tool always returned recorded: true, so an unwritable .monomind/neural/ or a full disk dropped the outcome without anyone knowing. recordModelOutcome still never throws, but it now resolves to whether the line was appended, the tool reports that, and hooks model-outcome prints a warning instead of "Outcome recorded" when the write failed.
  • Four more hooks tools stop reporting writes that did not happen. (Follow-up to #346) hooks_post-task set learningUpdates.outcomePersisted: true even when writing .monomind/routing-outcomes.json failed. hooks_session-end and memory_session-end reported the session end as persisted when no session with that id had been started, which is every hooks session-end run, since the command passes no session id; they now report persisted: false / success: false. hooks_intelligence-reset returned reset: true when some learning files could not be deleted; it now returns reset: false with a failedFiles list, and hooks intelligence --reset warns and names them. hooks_pretrain counted neuralPatternsLearned even when recording the trajectory failed; it now reports 0.
  • org reload reopens roles the org-wide run_config.budget_tokens ceiling closed. (Follow-up to #343) A reload that raised the ceiling above the run's total spend could not reopen the roles it had closed; their tasks stayed blocked with "org-wide budget_tokens exhausted" for the rest of the run. Raising run_config.budget_tokens above the run's total spend now re-arms the ceiling at the new value, reopens those roles with their spend kept, restores any roles that had been held back from spawning, and re-dispatches their held tasks (org-budget-reopened audit event); a raise that is not enough keeps them closed and updates the numbers in the held tasks' reason. A reload also recomputes the token cap of every live role that uses the org's even split, so a changed run_config.budget_tokens or a role gaining or dropping its own budget_tokens moves the other roles' shares too. See Budget-closed assignees.
  • pick no longer mis-routes tasks that mention "org" or API documentation. Keyword picks showed monoswarm-multi-repo for tasks like "set up an org that tracks competitor pricing changes" — its description said "many repositories in an org", which matched monomind's own meaning of "org" (an agent organization); it now says "GitHub repositories" / "GitHub repos". api-designer showed up for "document the public REST API for external developers" because it carried the documentation tag, which is reserved for technical docs, READMEs, ADRs and changelogs; that tag is dropped, since api already covers it. code-documenter's description now names the API reference docs and tutorials its skills actually cover.
  • Editing a bundled org skill in place is picked up without another change. .claude/helpers/skill-registry.json compared the bundled org-skills/ library by directory mtime only, so editing an existing bundled SKILL.md left the index looking fresh and the prompt hook, monomind pick and the pick MCP tool kept ranking the old description and tags until something else touched the directory. The bundled root now gets the same per-skill scan as project and user org skill roots.

npm: https://www.npmjs.com/package/monomind/v/2.16.8 and https://www.npmjs.com/package/@monoes/monomindcli/v/2.16.8