Skip to main content
Glama

AgentNave 是一个本地 MCP 服务。 你正在用的 Agent(Claude Code、Codex……)当老板,把活派给本机装好的其他 CLI:可以单独派一位,也可以拉几位一起,并联各答各的,或者串联轮流发言。另有一个托盘「小办公室」App: 谁在工位上干活、谁去了会议室、大家说了什么,都能看到。

🎬 实机演示

Related MCP server: Claude Code Manager WAN

✨ 能做什么

  • 🧑‍💼 派一位组员干活:start_agent 把任务交给一个 CLI,结果只回给老板

  • 👯 拉几位组员开个会:run_round 请 2–7 位组员进会议室。默认开两轮并联:第一轮各自给方案,第二轮看过大家的回答再补充,最后由 boss 总结。想让大家最后接力收个尾,就加一轮串联,后发言的人能看到前面的回答

  • 🔍 先审再公开:开了审核,每条回答由老板决定公开还是留作私聊,不公开的回答其他席位看不到

  • 🏢 托盘小办公室:工位、会议室、对话记录一目了然,旧工作区可以一键清理

  • 🧠 原生会话照旧:每个 CLI 用自己的登录、配置和原生会话,保留 session_id,之后能接着聊

  • 🤝 换个聊天接着干:对老板说「转交这个会话」,到新聊天说「接手」;额度用完写不了交接文档,也能让新老板接手那个宿主的会话

👀 谁当老板,谁当组员

角色

支持

老板(接入 AgentNave、负责派活)

Claude 桌面端、Claude Code、Codex CLI、CodeBuddy Code、WorkBuddy 桌面端、Grok CLI、Antigravity、Pi、DeepSeek Harness、ZCode、Hermes

组员(被派活的 CLI)

Claude Code、Codex CLI、CodeBuddy Code、Grok CLI、Antigravity CLI、Pi Coding Agent、DeepSeek Harness、ZCode

老板的范围更大:上面这些宿主都能当老板,桌面端也可以;组员目前只有表里这几个 CLI。宿主不会用 start_agent 把单个任务派给自己的 CLI,但会议里可以有它的席位。

🎀 组员图鉴

小人按模型家族分配,不看用的是哪个 CLI:用 Codex CLI 跑 GPT,出场的就是 GPT 那位小龙娘。没有专属形象的模型由「新同事」代班。 想换成自己的小人,在 App 设置的「外观」页上传一套就行。

🚀 快速开始

先准备好 uv、Git,以及至少一个已经登录的 CLI。AgentNave 不帮你安装或登录 CLI。

方式一:托盘 App(macOS,推荐)

  1. 到 Releases 下载 AgentNave_<版本>_universal.dmg,拖进「应用程序」。

  2. 打开 App,按「开始使用」走完四步:安装本机服务 → 接入一个宿主 → 设置组员 → 在宿主里派一次任务。 接入宿主时,App 会顺便装好配套的 agentnave-manager 和 agentnave-handover Skill。

  3. 回到宿主里说一句试试:

    用 agentnave 让两位组员各自回答一遍:这个仓库是做什么的?

方式二:手动安装(Windows / Linux,或不装 App)

当前配套版本是 v0.65.0,运行时和 Skill 都要从这个 tag 安装:

uv tool install --python 3.12 "git+https://github.com/TimWongUp/agentnave.git@v0.65.0"

然后按安装指南注册 MCP、安装 agentnave-manager 和 agentnave-handover Skill,再做验证。 安装指南本来就是写给 Agent 看的,可以直接交给你的 Agent,让它照着检查和安装。 可选的 agentnave-review Skill 是一道按风险分级的 PR/合并评审门,评审工位也由 AgentNave 派出去的只读 CLI 担任。

任务和会议的历史保存在 ~/.agentnave/(也可以用 AGENTNAVE_DATA_DIR 指定别的目录)。各 CLI 的登录、配置和原生会话仍归 CLI 自己管。

🧰 MCP 工具一览

工具

用途

start_agent

派一个 CLI 任务,立即返回 invocation_id,任务会自动保存

run_round

开一场 2–7 席的会议、跑一轮并联或串联,或者以主持人身份发言

wait

默认最多等 240 秒,任一任务或轮次就绪即返回;0 即时核验进展

cancel

停止任务或轮次,返回它的最终结果

decide_answers

开了审核时,逐条决定回答公开还是留作私聊

list

列出当前句柄和已保存的对话,并启动只读看板

read_conversation

按 App 里看到的样子读回一段对话

list_members

读取 App 里设定的组员默认值,以及某个 CLI 支持的参数

handover

把本聊天的整个工作区交给另一个老板聊天,或列出、认领等待接手的工作区

没传的 model、effort 和 options 会套用 App 里的组员默认值,仍没有档位时按 CLI 自身设置的档位传入;回执的 defaults_applied 会写明补了哪些;显式参数优先。 CLI 选择与参数见 agentnave-manager Skill,审核、主持人发言、隔离席位和看板见会话指南, 稳定接口与输出上限见架构说明。

🧭 分工:AgentNave 管什么

AgentNave 只负责把活派出去、管好进程、把结果原样带回来。怎么拆任务、找谁、要不要复核,都由老板来定,因为完整的上下文在老板手里。

AgentNave

老板(调用方 Agent)

各 CLI 的命令适配

规划和拆分任务

内存中的调用生命周期

选 CLI、选模型

POSIX 进程组 / Windows Job Object

并行度、复核与综合

统一格式的终态结果

重试、权限和 worktree

保存的并联/串联会议轮次

谁来答、按什么顺序、答得行不行

派出去的 CLI 没法找人点「批准」,所以 AgentNave 默认让它用自带的自动审批;CLI 没有自动审批时就直接放开。在 App 里也可以把某个 CLI 改成完全放开。 AgentNave 没有给人用的命令行,agentnave-mcp 只是 MCP 宿主启动它用的 STDIO 入口。

调用句柄只存在于当前 MCP 服务进程里,完成七天后失效。服务停止时,AgentNave 会尽力结束仍留在 Provider 进程树里的进程。 重启后找不回旧句柄,但保存的会议可以继续;留下的 Provider session_id 也可以传给新的 start_agent 接着用。

在 macOS/Linux 上,AgentNave 给每个 Provider 配一个专用的 POSIX 进程组 supervisor;在 Windows 上用 kill-on-close 的 Job Object: Provider 以挂起状态创建,先加入 Job Object 再恢复运行,子孙进程就不会跑到受管进程树之外。

AgentNave 不是沙箱。 在 POSIX 上,有命令权限的同用户 Provider 可以主动脱离守护、杀掉 supervisor,或用别的方式逃出进程组清理。 Windows Job Object 只管进程树归属,不能把 Provider 和用户账户或机器的其余部分隔离开。真正的安全边界是各 Provider 自己的权限设置; 需要对抗性隔离时,请使用操作系统级别的隔离。

下面的检查用于开发用的 checkout,不适用于上面的 uv tool 安装。完整流程见 CONTRIBUTING.md。

uv sync --locked --all-groups
uv run ruff format --check .
uv run ruff check .
uv run pyright
uv run pytest

🤝 参与贡献

欢迎通过 GitHub Issue 和 Pull Request 参与,开发流程和验证要求见 CONTRIBUTING.md。 安全漏洞请不要发公开 Issue,按 SECURITY.md 走仓库的私密报告渠道。

🙏 致谢

托盘查看会话的思路,以及读取 Claude、Codex 会话记录判断 boss 所在应用的做法,参考了 magpie。CLI 图标来自 LobeHub Icons(MIT)。

📄 许可证

AgentNave 以 MIT 许可证发布。

Available Tools

9 tools
cancelCancel a task or roundA
DestructiveIdempotent

Stop a task or round; return its cancelled or already-finished result. Running seats become absent, unstarted seats skip, published answers stay and undecided answers stay private. CLI side effects are not undone.

NameRequiredDescriptionDefault
idYesAn invocation_id from start_agent or a round_id.

Output Schema

NameRequiredDescription
roundNo
invocationNo

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even though annotations already declare destructiveHint=true and idempotentHint=true, the description adds substantive semantics beyond them: what happens to running seats (become absent), unstarted seats (skip), published answers (retained) versus undecided answers (stay private), and that CLI side effects are not undone. That is exactly the 'what gets destroyed and what survives' context an agent needs before invoking a destructive tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action, then two compact clauses covering return shape and state outcomes. Every clause carries information an agent cannot get from the annotations or schema; nothing is redundant padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists and annotations cover safety/idempotency, so the description needn't explain return values; it nonetheless covers the state transitions well. The only gap is operational context — no note on authorization requirements or on calling this after an invocation has already been reaped by another actor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter is fully documented ('An invocation_id from start_agent or a round_id'). The description adds no meaning beyond the schema — it never mentions the id or its two accepted forms — so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'Stop a task or round' — and immediately adds the return nuance ('cancelled or already-finished result'). No sibling (start_agent, run_round, wait, decide_answers) performs a stop/cancel action, so the tool is unambiguously distinguishable from the listed alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: an agent can infer it should call this when it wants to halt an in-flight invocation or round. There is no explicit when-not-to-use guidance, no mention of which sibling to prefer for graceful termination (e.g. handover), and no statement of the preconditions on the id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

decide_answersPublish answers under review or keep them privateA
Idempotent

Decide held answers atomically: publish shares with peers; private keeps between boss and seat. Repeating a decision is idempotent; changing it is rejected. Parallel rounds commit after all decisions; serial rounds then start the next seat. Returns after local commit when no work/review remains: finished needs no further call; running/review requires wait.

NameRequiredDescriptionDefault
round_idYes
decisionsYesseat_id -> publish or private

Output Schema

NameRequiredDescription
errorNo
statusYes
entriesYes
round_idYes
committedYes
decisionsYes
pending_reviewYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: annotations already declare idempotentHint=true, but the description explains the exact semantics (repeat OK, change rejected), plus atomicity across seats, parallel-vs-serial commit ordering, and the post-commit finish-state contract. This is the kind of operational detail an agent cannot get from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and its two outcomes, then the commit/return semantics. Dense and telegraphic ("finished needs no further call") but nearly every clause carries operational meaning; a slightly less clipped phrasing would read better without losing content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, return values needn't be spelled out, yet the description still supplies the commit-ordering and next-step state contract that the schema won't convey. The only real gap is round_id provenance and whether the decisions map must cover all held seats.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers decisions ("seat_id -> publish or private") but round_id has no description, giving 50% coverage. The description compensates by explaining what 'seat' means in context and the effect of each publish/private value, though it never clarifies round_id's role or how to obtain it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the specific verb (decide) and resource (held answers), and defines both enum outcomes inline: 'publish shares with peers; private keeps between boss and seat.' This differentiates it clearly from the other lifecycle siblings (run_round, wait, handover).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete decision-point rules: repeating a decision is idempotent, changing it is rejected, and 'running/review requires wait' explicitly routes the agent to the wait sibling when work remains. It does not enumerate every alternative (e.g. cancel/handover) but leaves little ambiguity about when to call this versus waiting.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

handoverHand a workspace over to another bossA

Transfer all tasks/meetings of a chat only on user request; no arguments lists waiting workspaces. release=true hands off; workspace_id claims and refuses the previous boss. Claiming your own waiting workspace withdraws it. Running work finishes on the old server; continue when writable=true. Private: never send to seats. Follow the agentnave-handover Skill.

NameRequiredDescriptionDefault
cwdNoWith release: absolute working directory; required when this chat has no saved conversations.
noteNoWith release: next steps and references for the next boss; saved in the App, so exclude secrets and sensitive personal data.
titleNoWith release: workspace name; required only when this chat has no saved conversations.
releaseNoMark this chat workspace as waiting for takeover.
workspace_idNoClaim a waiting workspace listed by handover().
manager_session_idNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations, disclosing that claiming refuses the previous boss (an access revocation side effect), that claiming your own waiting workspace withdraws it, that running work continues on the old server, and a privacy constraint ('never send to seats'). These are real behavioral traits the agent can't otherwise know.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and every clause carries information, but the description is a densely semicolon-chained block with abrupt fragments ('Private: never send to seats') that are hard to parse on a first read. It could be restructured into clear sentences without losing content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema and annotations cover the safety profile and the return value (writable), and the description explains the two modes and their conditions. Missing are error cases and what exactly 'no arguments' returns, which would help for a dual-purpose tool with 6 optional parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 83%, so the schema already documents cwd, note, title, release, and workspace_id. The description adds mode interactions (no arguments lists waiting workspaces; release vs. workspace_id semantics; claiming your own workspace withdraws it) that the field-level descriptions don't fully cover.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Transfer all tasks/meetings of a chat') and reveals the tool's dual modes (release a workspace vs. claim a waiting one). It's a bit dense and chained together, but an agent can tell what the tool does. No sibling differentiation is needed since no other tool overlaps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'only on user request' gives a clear required condition, 'release=true hands off; workspace_id claims' gives mode selection, and 'Continue when writable=true' gives a follow-up condition. It doesn't name alternatives (none exist among siblings) or exclusions, but the when-and-how is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listList handles and saved conversationsC
Read-onlyIdempotent

List invocation metadata and saved conversations, newest first; open a read-only dashboard. writable=false: continue at the owning server or when idle. Private: never send to seats.

NameRequiredDescriptionDefault
kindNoOnly meetings or only task conversations.
limitNoMost recent conversations; defaults to 10, at most 200.

Output Schema

NameRequiredDescription
totalYes
invocationsYes
unavailableYes
conversationsYes
dashboard_urlNo
dashboard_errorNo

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so "writable=false" mostly restates structured data. The description does add two useful behavioral facts: results are ordered newest-first, and the data is private and must not be sent to seats. However, "open a read-only dashboard" is left unexplained, leaving ambiguity about whether a side effect occurs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loads the listing purpose, but the remaining sentences are cryptic fragments ("continue at the owning server or when idle") that read as leaked internal notes rather than agent-facing guidance. Those lines consume space without conveying actionable meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, but the description still leaves core questions open for a zero-required-parameter listing tool: what "invocation metadata" contains, whether the dashboard clause is an action, and how results differ when kind is set. Given the ambiguity, the description is not sufficient to call the tool confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so kind (meetings vs task conversations) and limit (1-200, default 10) are fully documented in the schema. The description adds nothing about either parameter, only the ordering. Baseline 3 applies when the schema does all the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It does state a specific verb and resource ("List invocation metadata and saved conversations, newest first"), which is enough to distinguish it from read_conversation. But the second clause, "open a read-only dashboard," introduces a second, unexplained capability, and the title's "handles" never matches the description's "invocation metadata." The agent cannot tell exactly what one call returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only guidance is fragmentary jargon: "writable=false: continue at the owning server or when idle" and "Private: never send to seats." Neither tells the agent when to pick list over siblings like list_members or read_conversation. No exclusion or alternative routing is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_membersRead configured membersB
Read-onlyIdempotent

Read App members, defaults, review/orchestration seats and mode limits afresh. members merges provider/model rows: omitted modes means all modes, [] means none; default is true or a list of default modes. error checks Adapter options, not installation, authentication or model availability; repair invalid files in App. Missing members leave modes unrestricted; disabled orchestration supplies no defaults. Omitted available means usable; unavailable seats may offer replacement parameters: pass with original seat/role; switching is never automatic. Native seats/exclusions: see MCP instructions.

NameRequiredDescriptionDefault
providerNoAlso return this CLI's permitted status and supported options.

Output Schema

NameRequiredDescription
hostNo
errorNo
reviewNo
membersYes
configuredYes
restrictedNo
cli_optionsNo
host_sourceYes
permissionsNo
review_errorNo
orchestrationNo
provider_detailsNo
cli_options_errorNo
permissions_errorNo
orchestration_errorNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish a safe read-only, idempotent operation. The description adds substantial behavioral context beyond that: merging provider/model rows, omitted-vs-empty modes semantics, default handling, error scope, and seat replacement behavior. Some phrasing is terse, but it materially informs behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first sentence, but the remainder is a dense semicolon-separated block covering many edge cases. It is adequately sized for a configuration-reading tool, yet the structure makes it harder to parse than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema and full annotation coverage, so the description need not explain return values or safety. It covers most behavioral caveats for defaults, modes, availability, and replacements, though it could more clearly frame when the tool should be selected.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the single 'provider' parameter is already documented in the schema. The description mentions provider/model rows and seat/options behavior but does not add meaning specifically about the 'provider' argument beyond the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb, 'Read', and names the resources: App members, defaults, review/orchestration seats, and mode limits. This distinguishes it from mutation siblings, though it does not explicitly contrast it with the generic 'list' sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives like 'list' or 'read_conversation'. The description explains conditional behaviors once called, but not the selection criteria for calling it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_conversationRead a saved conversationB
Read-onlyIdempotent

Read saved final messages/tasks, including native session_ids and forwardable message_ids. Meeting id equals group_id; pending_answer marks answers awaiting review. Private: never forward the whole result to seats.

NameRequiredDescriptionDefault
limitNoMost recent messages/tasks to return; omit for all remaining.
since_roundNoMeetings: include messages from this round onward; 0 includes initial host remarks.
conversation_idYes
include_privateNoMeetings: also each seat's private instructions and the answers kept private.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely new behavioral context beyond them: the result is private and must not be forwarded wholesale to seats, and it explains that pending_answer marks answers awaiting review. This is exactly the kind of extra operational caveat annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded lines: purpose first, then identifiers, then the privacy caveat. Efficient overall, though 'Private: never forward the whole result to seats' is telegraphic and assumes the reader knows what 'seats' are.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is rightly omitted, and annotations cover safety. However, the description introduces domain terms ('seats', 'meetings', 'group_id', 'pending_answer') without defining them, and never explains what happens when conversation_id does not refer to a meeting, leaving an agent to infer the mode.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, with limit, since_round and include_private already well documented in the schema, so the baseline of 3 applies. The description does add clarifying semantics for conversation_id ('Meeting id equals group_id'), which is the one undocumented parameter, but it says nothing about the effect of limit or since_round beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Read saved final messages/tasks', and adds what the payload contains (native session_ids, forwardable message_ids). It is clearly distinguishable from the write/orchestration siblings (start_agent, run_round, decide_answers), though it never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to call this versus siblings like `list` or `wait`. The only directive is a downstream handling rule ('never forward the whole result to seats'), which constrains use of the output but does not help select the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_roundRun a meeting roundA
Destructive

Create/continue a saved meeting; group_id equals conversation_id. Seats keep native sessions across rounds/restarts and automatically share committed entries. New: title/members required; add prompt/seats to run round 1, omit prompt to only create. Existing: omit creation-only arguments. One active round per meeting; wait on round_id. entries contains committed message_ids; unreceived flags ends/blockers/reviews for wait. At meeting close, post the summary you give the user as a prompt with no seats.

NameRequiredDescriptionDefault
cwdNoNew meeting only: absolute directory seats run in; ignored when isolated.
orderNoparallel: answers hidden from peers this round; serial: later seats see earlier answers.parallel
seatsNoOrdered seat ids to answer once; empty posts a remark.
titleNoNew meeting title: at most 48 columns (CJK=2); the first also names this workspace.
promptNoShared task; no seats posts a public remark without starting a round; omit only to create.
reviewNoNew meeting only: hold each answer until decide_answers decides it.
forwardNoMessage_ids to commit before this task; requires seats; see MCP instructions.
membersNoNew meeting only: its 2–7 seats.
group_idNoMeeting to continue; omit to open a new meeting from title and members.
isolatedNoNew meeting only: each seat gets its own empty directory and restricted_tools; seat options may only set model and effort (and Pi's provider).
retry_seatsNoFailed/blocked seats to restart with the same input in a still-running parallel round; pass only with group_id. After it ends, use a new round.
instructionsNoOptional private instruction per seat id; never sent to other seats.
manager_modelNo
manager_session_idNo

Output Schema

NameRequiredDescription
roundNo
entriesNo
membersNo
group_idYes
warningsNo
unreceivedNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructive/open-world annotations, the description discloses important behavior: seats keep native sessions across rounds/restarts, committed entries are automatically shared, only one round is active per meeting, and round output includes unreceived ends/blockers/reviews for wait. It does not fully describe failure modes or the exact persistence/destructive effects, but adds substantial context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loads the core create/continue meeting behavior, with New/Existing branches that make it scannable. It is occasionally telegraphic, especially around entries and unreceived flags, but every sentence carries relevant operational information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 14 parameters, high schema coverage, existing annotations, and an output schema, the description supplies enough workflow context to call the tool correctly for new and existing meetings. It covers round behavior and close-out summary posting, though a little more clarity on round lifecycle and output interpretation would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 86% schema description coverage, the schema already documents most parameters; the description still adds key semantics such as group_id equaling conversation_id and new-vs-existing requirements for title, members, prompt, and seats. It does not explain several parameters like order, review, forward, isolated, retry_seats, or instructions, but those are covered by the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates or continues a saved meeting and introduces the group_id/conversation_id equivalence, so the verb and resource are identifiable. It does not explicitly distinguish itself from sibling tools such as start_agent, wait, or decide_answers, which keeps it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit branching guidance: new meetings require title/members, prompt/seats run round 1, omitting prompt only creates, and existing meetings should omit creation-only arguments. It also notes the one-active-round constraint and waiting on round_id, but does not name alternatives like wait or decide_answers as distinct tool choices.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_agentRun a task with a local AI CLIA
Destructive

Start a private CLI task; invocation_id goes to wait, not session_id. No deadline or messages to active tasks; cancel to stop. Reply settings are requested, not effective; unreceived flags undelivered ends/blockers/reviews for wait.

NameRequiredDescriptionDefault
cwdNoExisting absolute directory; required for new tasks, inherited on resume when omitted.
roleNoDesk label: 1–40 trimmed characters, no controls/newlines; blank clears. Review roles select CLI if omitted and App defaults if CLI matches; explicit options win.
seatNoApp Explorer/Worker difficulty: selects CLI if omitted, defaults if CLI matches and orchestration enabled; explicit options win; inherits on resume. Not shown; also pass role as the desk label.
titleNoNew title: at most 48 columns (CJK=2). The first permanently names this workspace, so state the chat's purpose; later tasks may omit it.
accessNoDeclared read/write access; see MCP instructions.
promptYesTask, context, constraints and expected output; this chat is not inherited.
forwardNoMessage_ids to inject before this task; see MCP instructions.
providerNoCLI name; omit to inherit session history or the App seat; see MCP instructions for exclusions and native seats.
session_idNoNative session_id from a finished task, never invocation_id; omit for a new thread. Resume inherits provider/cwd/role/seat; explicit values win. Unknown or ambiguous history needs provider and cwd; a new role without seat drops the old seat.
manager_modelNo
conversation_idNoPrivate task conversation to append to.
provider_optionsNoCLI options, including model/effort; keys via list_members(provider=...); defaults in MCP instructions.
manager_session_idNo

Output Schema

NameRequiredDescription
errorNo
modelNo
accessNo
effortNo
outputNo
reasonYes
statusYes
activityNo
providerNo
warningsNo
elapsed_msNo
message_idNo
session_idNo
unreceivedNo
invocation_idYes
output_age_msNo
conversation_idYes
defaults_appliedNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructive=true, openWorld=true and non-idempotent, so the safety profile is covered. The description adds genuinely non-derivable behavior: reply settings are requested rather than effective, and undelivered ends/blockers/reviews must be picked up through wait. The asynchronous model is conveyed, though the phrasing is dense enough that a first-time agent may need to re-read it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

There is no filler, but the four clipped clauses are not front-loaded around a single clear statement of what the call does, and phrases like 'unreceived flags undelivered ends/blockers/reviews for wait' are close to unparseable on first read. Brevity here costs comprehension rather than buying it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and 85% parameter coverage fills most of the rest. But for a 13-parameter, destructive, open-world tool the description says nothing about what the returned invocation_id is for beyond routing it to wait, what failure looks like, or the distinction between a new task and a resumed thread.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 85%, so the schema already documents cwd, role, seat, title, provider, session_id and provider_options in detail. The description's only parameter-adjacent content is the invocation_id-vs-session_id warning, which the session_id schema field already states verbatim ('never invocation_id'). Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening clause 'Start a private CLI task' gives a concrete verb and resource, and the follow-up ('invocation_id goes to wait') distinguishes this from the wait/cancel siblings. However, 'private CLI task' is internal jargon that an agent must infer means spawning a background agent process; the title carries more of the explanation than the description does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names the adjacent tools and the conditions that select them: results go to wait, stopping goes to cancel, and 'no deadline or messages to active tasks' states an exclusion. There is no guidance on when to start a new task versus resuming via session_id or using run_round, which leaves the main sibling-routing decision unstated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

waitWait for tasks or roundsA
Read-onlyIdempotent

Return when any handle is ready; reason=ready contains all ready now in updates (tasks) and rounds, not necessarily all finished.

Ready: terminal; execution_blocked (still running; once/category); review_needed (pending_review needs decide_answers); seat_lost (failed/blocked seat while peers run; once/seat, answers withheld; retry via run_round.retry_seats). pending_ids lists unreceived ends for the given ids or inbox; all_finished means none remain. Handle blockers/reviews, then wait on pending_ids until all_finished; drop delivered handles. Ends are never pushed: wait after dispatch or independent work; collect every terminal result before ending your turn. wait_elapsed gives status/activity; wait again normally. Only wait_seconds=0 adds running tails (up to 1000 characters) and age, subject to include_output. Round answers arrive once; output_returned means reread with read_conversation. Unknown/expired/duplicate ids reject the whole call. Inbox ends arrive once; reviews stay ready until decided; nothing_pending means an empty inbox.

NameRequiredDescriptionDefault
idsNoDistinct invocation_ids/round_ids; omit for this server inbox of unreceived tasks and rounds.
wait_secondsNoOmit to wait up to 240s; 0 checks progress immediately and includes running tails; ready results are still received; neither value stops work.
include_outputNofalse omits reply bodies and tails, including answers under review.
manager_session_idNoInbox chat filter when ids is omitted; ignored with ids; identity rules in MCP instructions.

Output Schema

NameRequiredDescription
reasonYes
roundsYes
updatesYes
pending_idsYes
all_finishedYes

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description goes well beyond them: up-to-240s blocking without stopping work, one-shot delivery of results and inbox ends, reviews staying ready until decided, and whole-call rejection on unknown/expired/duplicate ids. This is the kind of operational context annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense, run-on and jargon-heavy: 'handle', 'ends', 'tails' and 'once/seat' are used before being explained, forcing re-reads. The content largely earns its place, but the structure is a wall of clauses rather than front-loaded statements, which hurts scanability for a tool that will be called frequently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a stateful blocking tool with an output schema, the description covers the state machine, delivery-once semantics, error rejection and post-call workflow. Remaining gaps are terminological (undefined 'handle'/'ends') rather than missing operational facts an agent needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds a little beyond the schema — the 1000-character tail cap, that age accompanies running tails, and that ready results are still received with wait_seconds=0 — but most parameter meaning is already in the schema fields themselves.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action and object ('Return when any handle is ready') and enumerates the ready-state outcomes (terminal, execution_blocked, review_needed, seat_lost), which tells an agent this is a blocking poll rather than a fetch. It is distinguishable from read_conversation and decide_answers, though the core noun 'handle' is never defined, leaving a small ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit sequencing: 'Handle blockers/reviews, then wait on pending_ids until all_finished; drop delivered handles' and 'Ends are never pushed: wait after dispatch or independent work.' It also routes elsewhere where appropriate ('retry via run_round.retry_seats', 'read_conversation', 'decide_answers'). No explicit negative case naming a sibling tool to use instead of wait, which keeps it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv0.65.0
    • Changedcancel1 field changed
      • changedOutput schema / $defs / InvocationPayload / required
        Previous value: -[
        -  "invocation_id",
        -  "status",
        -  "reason",
        -  "elapsed_ms"
        -]New value: +[
        +  "invocation_id",
        +  "status",
        +  "reason"
        +]
    • Changedhandover6 fields changed
      • changedInput schema / $defs / ManagerSessionId / description
        Previous value: -"Current manager chat/session ID, shared by all tasks and groups in that chat. Use the host's real session ID when available; otherwise generate one UUID once for this manager chat and keep reusing it. A different chat needs a different ID. Never use the CLI name, MCP connection ID, or subagent session_id. Required by start_agent and run_round, and by handover to hand over or take over, unless AGENTNAVE_HOST_SESSION_ID is injected for this chat or the host gives this server its native session ID (Claude Code: CLAUDE_CODE_SESSION_ID)."New value: +"Boss chat ID from host context; see MCP instructions."
      • addedInput schema / properties / cwd
        Added value: +{
        +  "anyOf": [
        +    {
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "With release: absolute working directory; required when this chat has no saved conversations.",
        +  "title": "Cwd"
        +}
      • changedInput schema / properties / note / description
        Previous value: -"With release: notes for the next boss, written for what it must do next. Say why you hand over (out of quota, a model better suited to the work), the goal, what is done, decisions and why, what is open, desks in use, and the Skills to load (agentnave-manager, any review gate): it may come from another host. Name the conversations to read first and any worktree or uncommitted work needed to continue. Cite what already exists by reference only (conversation ids, PR or commit links, ADR or spec paths); the next boss reads seat answers with read_conversation, so keep this shorter than the records it points to. No keys, passwords or sensitive personal data: it is saved and shown in the App."New value: +"With release: next steps and references for the next boss; saved in the App, so exclude secrets and sensitive personal data."
      • changedInput schema / properties / release / description
        Previous value: -"Mark this boss chat's whole workspace as waiting for another boss chat to take over."New value: +"Mark this chat workspace as waiting for takeover."
      • addedInput schema / properties / title
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "With release: workspace name; required only when this chat has no saved conversations.",
        +  "title": "Title"
        +}
      • changedInput schema / properties / workspace_id / description
        Previous value: -"Take this waiting workspace over (from a call without arguments)."New value: +"Claim a waiting workspace listed by handover()."
    • Changedlist2 fields changed
      • changedInput schema / properties / limit / default
        Previous value: -20New value: +10
      • changedInput schema / properties / limit / description
        Previous value: -"Most recent conversations."New value: +"Most recent conversations; defaults to 10, at most 200."
    • Changedlist_members20 fields changed
      • addedOutput schema / $defs / ListedMember
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "default": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "items": {
        +            "$ref": "#/$defs/Mode"
        +          },
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Default"
        +    },
        +    "effort": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Effort"
        +    },
        +    "efforts": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Efforts",
        +      "type": "array"
        +    },
        +    "error": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Error"
        +    },
        +    "model": {
        +      "default": "",
        +      "title": "Model",
        +      "type": "string"
        +    },
        +    "modes": {
        +      "anyOf": [
        +        {
        +          "items": {
        +            "$ref": "#/$defs/Mode"
        +          },
        +          "type": "array"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Modes"
        +    },
        +    "notes": {
        +      "default": "",
        +      "title": "Notes",
        +      "type": "string"
        +    },
        +    "options": {
        +      "additionalProperties": {
        +        "$ref": "#/$defs/ProviderOption"
        +      },
        +      "title": "Options",
        +      "type": "object"
        +    },
        +    "provider": {
        +      "$ref": "#/$defs/ProviderName"
        +    }
        +  },
        +  "required": [
        +    "provider"
        +  ],
        +  "title": "ListedMember",
        +  "type": "object"
        +}
      • removedOutput schema / $defs / MemberStatus
        Removed value: -{
        -  "additionalProperties": false,
        -  "properties": {
        -    "default": {
        -      "title": "Default",
        -      "type": "boolean"
        -    },
        -    "effort": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "title": "Effort"
        -    },
        -    "efforts": {
        -      "items": {
        -        "type": "string"
        -      },
        -      "title": "Efforts",
        -      "type": "array"
        -    },
        -    "error": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "title": "Error"
        -    },
        -    "model": {
        -      "title": "Model",
        -      "type": "string"
        -    },
        -    "notes": {
        -      "title": "Notes",
        -      "type": "string"
        -    },
        -    "options": {
        -      "additionalProperties": {
        -        "$ref": "#/$defs/ProviderOption"
        -      },
        -      "title": "Options",
        -      "type": "object"
        -    },
        -    "permitted": {
        -      "title": "Permitted",
        -      "type": "boolean"
        -    },
        -    "provider": {
        -      "$ref": "#/$defs/ProviderName"
        -    },
        -    "valid": {
        -      "title": "Valid",
        -      "type": "boolean"
        -    }
        -  },
        -  "required": [
        -    "provider",
        -    "model",
        -    "default",
        -    "efforts",
        -    "effort",
        -    "options",
        -    "notes",
        -    "permitted",
        -    "valid",
        -    "error"
        -  ],
        -  "title": "MemberStatus",
        -  "type": "object"
        -}
      • removedOutput schema / $defs / ModeStatus
        Removed value: -{
        -  "additionalProperties": false,
        -  "properties": {
        -    "members": {
        -      "items": {
        -        "$ref": "#/$defs/MemberStatus"
        -      },
        -      "title": "Members",
        -      "type": "array"
        -    },
        -    "restricted": {
        -      "title": "Restricted",
        -      "type": "boolean"
        -    }
        -  },
        -  "required": [
        -    "restricted",
        -    "members"
        -  ],
        -  "title": "ModeStatus",
        -  "type": "object"
        -}
      • addedOutput schema / $defs / OrchestrationStatus / properties / enabled
        Added value: +{
        +  "default": false,
        +  "title": "Enabled",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / ReviewSeatStatus / properties / available / anyOf
        Added value: +[
        +  {
        +    "const": false,
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / $defs / ReviewSeatStatus / properties / available / default
        Added value: +null
      • removedOutput schema / $defs / ReviewSeatStatus / properties / available / type
        Removed value: -"boolean"
      • addedOutput schema / $defs / ReviewSeatStatus / properties / effort / default
        Added value: +null
      • addedOutput schema / $defs / ReviewSeatStatus / properties / native / anyOf
        Added value: +[
        +  {
        +    "const": true,
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedOutput schema / $defs / ReviewSeatStatus / properties / native / default
        Previous value: -falseNew value: +null
      • removedOutput schema / $defs / ReviewSeatStatus / properties / native / type
        Removed value: -"boolean"
      • addedOutput schema / $defs / ReviewSeatStatus / properties / reason / default
        Added value: +null
      • addedOutput schema / $defs / ReviewSeatStatus / properties / replacement
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/SeatReplacement"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • changedOutput schema / $defs / ReviewSeatStatus / required
        Previous value: -[
        -  "provider",
        -  "model",
        -  "effort",
        -  "available",
        -  "reason",
        -  "alternatives"
        -]New value: +[
        +  "provider",
        +  "model"
        +]
      • addedOutput schema / $defs / SeatReplacement
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "provider": {
        +      "$ref": "#/$defs/ProviderName"
        +    },
        +    "provider_options": {
        +      "additionalProperties": {
        +        "$ref": "#/$defs/ProviderOption"
        +      },
        +      "title": "Provider Options",
        +      "type": "object"
        +    },
        +    "reason": {
        +      "title": "Reason",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "provider",
        +    "reason"
        +  ],
        +  "title": "SeatReplacement",
        +  "type": "object"
        +}
      • addedOutput schema / properties / host / default
        Added value: +null
      • addedOutput schema / properties / members
        Added value: +{
        +  "items": {
        +    "$ref": "#/$defs/ListedMember"
        +  },
        +  "title": "Members",
        +  "type": "array"
        +}
      • removedOutput schema / properties / modes
        Removed value: -{
        -  "additionalProperties": {
        -    "$ref": "#/$defs/ModeStatus"
        -  },
        -  "propertyNames": {
        -    "$ref": "#/$defs/Mode"
        -  },
        -  "title": "Modes",
        -  "type": "object"
        -}
      • addedOutput schema / properties / restricted
        Added value: +{
        +  "items": {
        +    "$ref": "#/$defs/Mode"
        +  },
        +  "title": "Restricted",
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "configured",
        -  "host",
        -  "host_source",
        -  "modes"
        -]New value: +[
        +  "configured",
        +  "host_source",
        +  "members"
        +]
    • Changedread_conversation2 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"At most this many of the most recent messages or tasks; omitted counts the rest."New value: +"Most recent messages/tasks to return; omit for all remaining."
      • changedInput schema / properties / since_round / description
        Previous value: -"Meetings: only messages from this round on; 0 includes host remarks posted before the first round."New value: +"Meetings: include messages from this round onward; 0 includes initial host remarks."
    • Changedrun_round13 fields changed
      • changedInput schema / $defs / GroupSeatSpec / properties / access / description
        Previous value: -"Declared desk access: read for exploring, planning or reviewing, write for changing files. Recorded and shown only; it never changes the CLI's native permissions."New value: +"Declared read/write access; see MCP instructions."
      • changedInput schema / $defs / GroupSeatSpec / properties / provider_options / description
        Previous value: -"Options for this seat's CLI, e.g. {\"model\": \"gpt-6.1-sol\", \"effort\": \"medium\"}; omitted keys use discussion member defaults."New value: +"CLI options; omitted keys use discussion member defaults."
      • changedInput schema / $defs / GroupSeatSpec / properties / role / description
        Previous value: -"Optional desk role for this seat; 1–40 characters after trimming, no newlines or control characters. Blank or omitted means no role."New value: +"Desk label: 1–40 trimmed characters, no controls/newlines; blank/omitted means none."
      • changedInput schema / $defs / ManagerModel / description
        Previous value: -"Your current manager model ID, when known from trusted host context. Metadata for this message only; never the subagent model or a CLI-derived guess. Omit when unknown. Does not change provider settings."New value: +"Boss model override; normally omit; see MCP instructions."
      • changedInput schema / $defs / ManagerSessionId / description
        Previous value: -"Current manager chat/session ID, shared by all tasks and groups in that chat. Use the host's real session ID when available; otherwise generate one UUID once for this manager chat and keep reusing it. A different chat needs a different ID. Never use the CLI name, MCP connection ID, or subagent session_id. Required by start_agent and run_round, and by handover to hand over or take over, unless AGENTNAVE_HOST_SESSION_ID is injected for this chat or the host gives this server its native session ID (Claude Code: CLAUDE_CODE_SESSION_ID)."New value: +"Boss chat ID from host context; see MCP instructions."
      • changedInput schema / properties / forward / description
        Previous value: -"Message ids from wait, run_round, decide_answers or read_conversation to add as committed forward entries before this round's task, in order. Only succeeded tasks and committed entries of this manager workspace qualify; at most 20, no repeats. Seats receive them as data, not instructions."New value: +"Message_ids to commit before this task; requires seats; see MCP instructions."
      • changedInput schema / properties / order / description
        Previous value: -"parallel: all start together and cannot see each other's answer this round. serial: one by one in list order; later seats see earlier answers."New value: +"parallel: answers hidden from peers this round; serial: later seats see earlier answers."
      • changedInput schema / properties / prompt / description
        Previous value: -"Shared task for this round, visible to all seats; without seats, a public host remark every seat receives with its next round. To get answers, include seats even when opening a new meeting. Omit to only create the meeting."New value: +"Shared task; no seats posts a public remark without starting a round; omit only to create."
      • changedInput schema / properties / retry_seats / description
        Previous value: -"Failed or blocked seats of this meeting's running parallel round to start again: same input, still blind to other answers, and the answer joins this round. Pass only with group_id. Once the round ended, name them in a new round (they then see its answers)."New value: +"Failed/blocked seats to restart with the same input in a still-running parallel round; pass only with group_id. After it ends, use a new round."
      • changedInput schema / properties / seats / description
        Previous value: -"Ordered seat ids that each answer once. Include with title, members and prompt to open a meeting and run round 1 in one call. Empty only posts a host remark."New value: +"Ordered seat ids to answer once; empty posts a remark."
      • changedInput schema / properties / title / description
        Previous value: -"New meeting only: its short title, at most 48 columns (CJK characters count 2). If it is the manager chat's first conversation, it also names the workspace."New value: +"New meeting title: at most 48 columns (CJK=2); the first also names this workspace."
      • changedOutput schema / $defs / GroupSeatPayload / required
        Previous value: -[
        -  "id",
        -  "provider",
        -  "cwd",
        -  "model",
        -  "effort",
        -  "role",
        -  "access",
        -  "defaults_applied"
        -]New value: +[
        +  "id",
        +  "provider",
        +  "cwd"
        +]
      • addedOutput schema / properties / warnings
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Warnings",
        +  "type": "array"
        +}
    • Changedstart_agent23 fields changed
      • changedInput schema / $defs / ManagerModel / description
        Previous value: -"Your current manager model ID, when known from trusted host context. Metadata for this message only; never the subagent model or a CLI-derived guess. Omit when unknown. Does not change provider settings."New value: +"Boss model override; normally omit; see MCP instructions."
      • changedInput schema / $defs / ManagerSessionId / description
        Previous value: -"Current manager chat/session ID, shared by all tasks and groups in that chat. Use the host's real session ID when available; otherwise generate one UUID once for this manager chat and keep reusing it. A different chat needs a different ID. Never use the CLI name, MCP connection ID, or subagent session_id. Required by start_agent and run_round, and by handover to hand over or take over, unless AGENTNAVE_HOST_SESSION_ID is injected for this chat or the host gives this server its native session ID (Claude Code: CLAUDE_CODE_SESSION_ID)."New value: +"Boss chat ID from host context; see MCP instructions."
      • addedInput schema / $defs / OrchestrationRole
        Added value: +{
        +  "enum": [
        +    "explorer-easy",
        +    "explorer-hard",
        +    "worker-easy",
        +    "worker-hard"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / access / description
        Previous value: -"Declared desk access: read for exploring, planning or reviewing, write for changing files. Recorded and shown only; it never changes the CLI's native permissions."New value: +"Declared read/write access; see MCP instructions."
      • changedInput schema / properties / conversation_id / description
        Previous value: -"Task conversation to add this task to."New value: +"Private task conversation to append to."
      • addedInput schema / properties / cwd / anyOf
        Added value: +[
        +  {
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / cwd / default
        Added value: +null
      • changedInput schema / properties / cwd / description
        Previous value: -"Absolute existing directory where the subagent runs."New value: +"Existing absolute directory; required for new tasks, inherited on resume when omitted."
      • removedInput schema / properties / cwd / minLength
        Removed value: -1
      • removedInput schema / properties / cwd / type
        Removed value: -"string"
      • changedInput schema / properties / forward / description
        Previous value: -"Message ids from wait, run_round, decide_answers or read_conversation to inject before the prompt in order. Only succeeded tasks and committed entries of this manager workspace qualify; at most 20, no repeats. The injected text is labelled as data, not instructions, and the saved task prompt stays your original text."New value: +"Message_ids to inject before this task; see MCP instructions."
      • changedInput schema / properties / prompt / description
        Previous value: -"Complete task, context, constraints, and expected output; the CLI does not inherit this conversation."New value: +"Task, context, constraints and expected output; this chat is not inherited."
      • removedInput schema / properties / provider / $ref
        Removed value: -"#/$defs/ProviderName"
      • addedInput schema / properties / provider / anyOf
        Added value: +[
        +  {
        +    "$ref": "#/$defs/ProviderName"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / provider / default
        Added value: +null
      • changedInput schema / properties / provider / description
        Previous value: -"CLI requested by the user, not a model ID. Providers permitted by this host configuration: antigravity, claude, codebuddy, codex, deepseek, grok, pi, zcode. Excluded providers: none. start_agent rejects excluded providers; meetings follow discussion member limits without host exclusions."New value: +"CLI name; omit to inherit session history or the App seat; see MCP instructions for exclusions and native seats."
      • changedInput schema / properties / provider_options / description
        Previous value: -"Explicit options for the selected CLI, e.g. {\"model\": \"gpt-6.1-sol\", \"effort\": \"medium\"}; model is this CLI's own model ID as list_members shows it. Call list_members(provider=...) for supported keys. Omitted options use configured App defaults, then native CLI settings."New value: +"CLI options, including model/effort; keys via list_members(provider=...); defaults in MCP instructions."
      • changedInput schema / properties / role / description
        Previous value: -"Optional label shown on this task's desk; 1–40 characters after trimming, no newlines or control characters. Blank or omitted means no label. Each native thread is its own desk, whatever its role. An agentnave-review role (e.g. correctness-reviewer) or explorer-easy, explorer-hard, worker-easy, worker-hard also brings the model and effort the user picked for that seat in the App when provider is the seat's CLI; explicit options win, and defaults_applied names the seat."New value: +"Desk label: 1–40 trimmed characters, no controls/newlines; blank clears. Review roles select CLI if omitted and App defaults if CLI matches; explicit options win."
      • addedInput schema / properties / seat
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/OrchestrationRole"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "App Explorer/Worker difficulty: selects CLI if omitted, defaults if CLI matches and orchestration enabled; explicit options win; inherits on resume. Not shown; also pass role as the desk label."
        +}
      • changedInput schema / properties / session_id / description
        Previous value: -"To continue a specific native conversation, use the session_id returned by a finished invocation of the same provider; never use an invocation_id here. Omitted, the task starts a new native thread: a new desk in the App."New value: +"Native session_id from a finished task, never invocation_id; omit for a new thread. Resume inherits provider/cwd/role/seat; explicit values win. Unknown or ambiguous history needs provider and cwd; a new role without seat drops the old seat."
      • changedInput schema / properties / title / description
        Previous value: -"Short title for a new task conversation, at most 48 columns (CJK characters count 2). The first conversation of a manager chat also names its workspace for good, so give that one the chat's purpose; later private tasks may omit it."New value: +"New title: at most 48 columns (CJK=2). The first permanently names this workspace, so state the chat's purpose; later tasks may omit it."
      • changedInput schema / required
        Previous value: -[
        -  "provider",
        -  "prompt",
        -  "cwd"
        -]New value: +[
        +  "prompt"
        +]
      • changedOutput schema / required
        Previous value: -[
        -  "invocation_id",
        -  "status",
        -  "reason",
        -  "elapsed_ms",
        -  "conversation_id",
        -  "access"
        -]New value: +[
        +  "invocation_id",
        +  "status",
        +  "reason",
        +  "conversation_id"
        +]
    • Changedwait7 fields changed
      • changedInput schema / properties / ids / description
        Previous value: -"Distinct invocation_ids from start_agent and round_ids from run_round. Omit to wait on the inbox: every task and round of this server whose end you have not received yet."New value: +"Distinct invocation_ids/round_ids; omit for this server inbox of unreceived tasks and rounds."
      • changedInput schema / properties / manager_session_id / description
        Previous value: -"With ids omitted, only this boss chat's tasks and rounds; same value as start_agent and run_round. Ignored with ids."New value: +"Inbox chat filter when ids is omitted; ignored with ids; identity rules in MCP instructions."
      • changedInput schema / properties / wait_seconds / description
        Previous value: -"Omit for normal waiting (up to 240 seconds). Only 0 and 240 are accepted. Use 0 for a specific progress or intervention check: it returns at once and may include running reply tails. Ready results are still received normally. Never stops the work."New value: +"Omit to wait up to 240s; 0 checks progress immediately and includes running tails; ready results are still received; neither value stops work."
      • changedOutput schema / $defs / InvocationPayload / required
        Previous value: -[
        -  "invocation_id",
        -  "status",
        -  "reason",
        -  "elapsed_ms"
        -]New value: +[
        +  "invocation_id",
        +  "status",
        +  "reason"
        +]
      • addedOutput schema / properties / all_finished
        Added value: +{
        +  "title": "All Finished",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / pending_ids
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Pending Ids",
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "reason",
        -  "updates",
        -  "rounds"
        -]New value: +[
        +  "reason",
        +  "pending_ids",
        +  "all_finished",
        +  "updates",
        +  "rounds"
        +]
  2. 5 tool updatesv0.58.0
    • Changedhandover1 field changed
      • changedInput schema / properties / note / description
        Previous value: -"With release: notes for the next boss, written for what it must do next. Say why you hand over (out of quota, a model better suited to the work), the goal, what is done, decisions and why, what is open, desks in use, and the Skills to load (agentnave-manager, any review gate): it may come from another host. Cite what already exists by reference only (conversation ids, PR or commit links, ADR or spec paths); the next boss reads seat answers with read_conversation, so keep this shorter than the records it points to. No keys, passwords or sensitive personal data: it is saved and shown in the App."New value: +"With release: notes for the next boss, written for what it must do next. Say why you hand over (out of quota, a model better suited to the work), the goal, what is done, decisions and why, what is open, desks in use, and the Skills to load (agentnave-manager, any review gate): it may come from another host. Name the conversations to read first and any worktree or uncommitted work needed to continue. Cite what already exists by reference only (conversation ids, PR or commit links, ADR or spec paths); the next boss reads seat answers with read_conversation, so keep this shorter than the records it points to. No keys, passwords or sensitive personal data: it is saved and shown in the App."
    • Changedlist_members5 fields changed
      • addedOutput schema / $defs / Difficulty
        Added value: +{
        +  "enum": [
        +    "easy",
        +    "hard"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / $defs / OrchestrationStatus
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "explorer": {
        +      "additionalProperties": {
        +        "$ref": "#/$defs/ReviewSeatStatus"
        +      },
        +      "default": {},
        +      "propertyNames": {
        +        "$ref": "#/$defs/Difficulty"
        +      },
        +      "title": "Explorer",
        +      "type": "object"
        +    },
        +    "worker": {
        +      "additionalProperties": {
        +        "$ref": "#/$defs/ReviewSeatStatus"
        +      },
        +      "default": {},
        +      "propertyNames": {
        +        "$ref": "#/$defs/Difficulty"
        +      },
        +      "title": "Worker",
        +      "type": "object"
        +    }
        +  },
        +  "title": "OrchestrationStatus",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / ReviewSeatStatus / properties / native
        Added value: +{
        +  "default": false,
        +  "title": "Native",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / orchestration
        Added value: +{
        +  "$ref": "#/$defs/OrchestrationStatus"
        +}
      • addedOutput schema / properties / orchestration_error
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Orchestration Error"
        +}
    • Changedrun_round3 fields changed
      • changedInput schema / properties / prompt / description
        Previous value: -"Shared task for this round, visible to all seats; without seats, a public host remark every seat receives with its next round. Omit only to open a new meeting without posting anything."New value: +"Shared task for this round, visible to all seats; without seats, a public host remark every seat receives with its next round. To get answers, include seats even when opening a new meeting. Omit to only create the meeting."
      • addedInput schema / properties / retry_seats
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Failed or blocked seats of this meeting's running parallel round to start again: same input, still blind to other answers, and the answer joins this round. Pass only with group_id. Once the round ended, name them in a new round (they then see its answers).",
        +  "title": "Retry Seats"
        +}
      • changedInput schema / properties / seats / description
        Previous value: -"Ordered seat ids that each answer once; empty posts prompt as a host remark."New value: +"Ordered seat ids that each answer once. Include with title, members and prompt to open a meeting and run round 1 in one call. Empty only posts a host remark."
    • Changedstart_agent1 field changed
      • changedInput schema / properties / role / description
        Previous value: -"Optional label shown on this task's desk; 1–40 characters after trimming, no newlines or control characters. Blank or omitted means no label. Each native thread is its own desk, whatever its role."New value: +"Optional label shown on this task's desk; 1–40 characters after trimming, no newlines or control characters. Blank or omitted means no label. Each native thread is its own desk, whatever its role. An agentnave-review role (e.g. correctness-reviewer) or explorer-easy, explorer-hard, worker-easy, worker-hard also brings the model and effort the user picked for that seat in the App when provider is the seat's CLI; explicit options win, and defaults_applied names the seat."
    • Changedwait2 fields changed
      • changedInput schema / properties / wait_seconds / anyOf
        Previous value: -[
        -  {
        -    "maximum": 300,
        -    "minimum": 0,
        -    "type": "integer"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "enum": [
        +      0,
        +      240
        +    ],
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / wait_seconds / description
        Previous value: -"Longest wait in seconds, 300 when omitted; 0 returns at once, with the ready handles or a running snapshot of each. Never stops the work."New value: +"Omit for normal waiting (up to 240 seconds). Only 0 and 240 are accepted. Use 0 for a specific progress or intervention check: it returns at once and may include running reply tails. Ready results are still received normally. Never stops the work."
  3. 8 tool updatesv0.53.1
    • Changedcancel3 fields changed
      • addedOutput schema / $defs / InvocationPayload / properties / warnings
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Warnings",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / SeatRunPayload / properties / output_returned
        Added value: +{
        +  "title": "Output Returned",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / SeatRunPayload / properties / warnings
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Warnings",
        +  "type": "array"
        +}
    • Addedhandover
    • Changedlist1 field changed
      • changedInput schema / properties / kind / description
        Previous value: -"Only shows or only task conversations."New value: +"Only meetings or only task conversations."
    • Changedlist_members8 fields changed
      • changedInput schema / $defs / ProviderName / enum
        Previous value: -[
        -  "antigravity",
        -  "claude",
        -  "codebuddy",
        -  "codex",
        -  "deepseek",
        -  "grok",
        -  "pi"
        -]New value: +[
        +  "antigravity",
        +  "claude",
        +  "codebuddy",
        +  "codex",
        +  "deepseek",
        +  "grok",
        +  "pi",
        +  "zcode"
        +]
      • changedOutput schema / $defs / HostName / enum
        Previous value: -[
        -  "codex",
        -  "claude",
        -  "codebuddy",
        -  "workbuddy",
        -  "grok",
        -  "antigravity",
        -  "pi",
        -  "opencode",
        -  "hermes"
        -]New value: +[
        +  "codex",
        +  "claude",
        +  "codebuddy",
        +  "workbuddy",
        +  "grok",
        +  "antigravity",
        +  "pi",
        +  "deepseek",
        +  "hermes",
        +  "zcode"
        +]
      • addedOutput schema / $defs / PermissionTier
        Added value: +{
        +  "enum": [
        +    "auto",
        +    "full"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / $defs / ProviderName / enum
        Previous value: -[
        -  "antigravity",
        -  "claude",
        -  "codebuddy",
        -  "codex",
        -  "deepseek",
        -  "grok",
        -  "pi"
        -]New value: +[
        +  "antigravity",
        +  "claude",
        +  "codebuddy",
        +  "codex",
        +  "deepseek",
        +  "grok",
        +  "pi",
        +  "zcode"
        +]
      • addedOutput schema / properties / cli_options
        Added value: +{
        +  "additionalProperties": {
        +    "additionalProperties": {
        +      "$ref": "#/$defs/ProviderOption"
        +    },
        +    "type": "object"
        +  },
        +  "default": {},
        +  "propertyNames": {
        +    "$ref": "#/$defs/ProviderName"
        +  },
        +  "title": "Cli Options",
        +  "type": "object"
        +}
      • addedOutput schema / properties / cli_options_error
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Cli Options Error"
        +}
      • addedOutput schema / properties / permissions
        Added value: +{
        +  "additionalProperties": {
        +    "$ref": "#/$defs/PermissionTier"
        +  },
        +  "default": {},
        +  "propertyNames": {
        +    "$ref": "#/$defs/ProviderName"
        +  },
        +  "title": "Permissions",
        +  "type": "object"
        +}
      • addedOutput schema / properties / permissions_error
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Permissions Error"
        +}
    • Changedread_conversation2 fields changed
      • changedInput schema / properties / include_private / description
        Previous value: -"Shows: also each seat's private instructions and the answers kept private."New value: +"Meetings: also each seat's private instructions and the answers kept private."
      • changedInput schema / properties / since_round / description
        Previous value: -"Shows: only messages from this round on; 0 includes host remarks posted before the first round."New value: +"Meetings: only messages from this round on; 0 includes host remarks posted before the first round."
    • Changedrun_round13 fields changed
      • changedInput schema / $defs / ManagerSessionId / description
        Previous value: -"Current manager chat/session ID, shared by all tasks and groups in that chat. Use the host's real session ID when available; otherwise generate one UUID once for this manager chat and keep reusing it. A different chat needs a different ID. Never use the CLI name, MCP connection ID, or subagent session_id. Required by start_agent and run_round unless AGENTNAVE_HOST_SESSION_ID is injected for this chat."New value: +"Current manager chat/session ID, shared by all tasks and groups in that chat. Use the host's real session ID when available; otherwise generate one UUID once for this manager chat and keep reusing it. A different chat needs a different ID. Never use the CLI name, MCP connection ID, or subagent session_id. Required by start_agent and run_round, and by handover to hand over or take over, unless AGENTNAVE_HOST_SESSION_ID is injected for this chat or the host gives this server its native session ID (Claude Code: CLAUDE_CODE_SESSION_ID)."
      • changedInput schema / $defs / ProviderName / enum
        Previous value: -[
        -  "antigravity",
        -  "claude",
        -  "codebuddy",
        -  "codex",
        -  "deepseek",
        -  "grok",
        -  "pi"
        -]New value: +[
        +  "antigravity",
        +  "claude",
        +  "codebuddy",
        +  "codex",
        +  "deepseek",
        +  "grok",
        +  "pi",
        +  "zcode"
        +]
      • changedInput schema / properties / cwd / description
        Previous value: -"New show only: absolute directory seats run in; ignored when isolated."New value: +"New meeting only: absolute directory seats run in; ignored when isolated."
      • changedInput schema / properties / group_id / description
        Previous value: -"Show to continue; omit to open a new show from title and members."New value: +"Meeting to continue; omit to open a new meeting from title and members."
      • changedInput schema / properties / isolated / description
        Previous value: -"New show only: each seat gets its own empty directory and restricted_tools; seat options may only set model and effort (and Pi's provider)."New value: +"New meeting only: each seat gets its own empty directory and restricted_tools; seat options may only set model and effort (and Pi's provider)."
      • changedInput schema / properties / members / description
        Previous value: -"New show only: its 2–7 seats."New value: +"New meeting only: its 2–7 seats."
      • changedInput schema / properties / prompt / description
        Previous value: -"Shared task for this round, visible to all seats; without seats, a public host remark every seat receives with its next round. Omit only to open a new show without posting anything."New value: +"Shared task for this round, visible to all seats; without seats, a public host remark every seat receives with its next round. Omit only to open a new meeting without posting anything."
      • changedInput schema / properties / review / description
        Previous value: -"New show only: hold each answer until decide_answers decides it."New value: +"New meeting only: hold each answer until decide_answers decides it."
      • changedInput schema / properties / title / description
        Previous value: -"New show only: its short title, at most 48 columns (CJK characters count 2). If it is the manager chat's first conversation, it also names the workspace."New value: +"New meeting only: its short title, at most 48 columns (CJK characters count 2). If it is the manager chat's first conversation, it also names the workspace."
      • addedOutput schema / $defs / SeatRunPayload / properties / output_returned
        Added value: +{
        +  "title": "Output Returned",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / SeatRunPayload / properties / warnings
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Warnings",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / UnreceivedPayload
        Added value: +{
        +  "properties": {
        +    "error": {
        +      "$ref": "#/$defs/InvocationErrorPayload"
        +    },
        +    "id": {
        +      "title": "Id",
        +      "type": "string"
        +    },
        +    "kind": {
        +      "enum": [
        +        "task",
        +        "round"
        +      ],
        +      "title": "Kind",
        +      "type": "string"
        +    },
        +    "status": {
        +      "title": "Status",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "id",
        +    "kind",
        +    "status"
        +  ],
        +  "title": "UnreceivedPayload",
        +  "type": "object"
        +}
      • addedOutput schema / properties / unreceived
        Added value: +{
        +  "items": {
        +    "$ref": "#/$defs/UnreceivedPayload"
        +  },
        +  "title": "Unreceived",
        +  "type": "array"
        +}
    • Changedstart_agent5 fields changed
      • changedInput schema / $defs / ManagerSessionId / description
        Previous value: -"Current manager chat/session ID, shared by all tasks and groups in that chat. Use the host's real session ID when available; otherwise generate one UUID once for this manager chat and keep reusing it. A different chat needs a different ID. Never use the CLI name, MCP connection ID, or subagent session_id. Required by start_agent and run_round unless AGENTNAVE_HOST_SESSION_ID is injected for this chat."New value: +"Current manager chat/session ID, shared by all tasks and groups in that chat. Use the host's real session ID when available; otherwise generate one UUID once for this manager chat and keep reusing it. A different chat needs a different ID. Never use the CLI name, MCP connection ID, or subagent session_id. Required by start_agent and run_round, and by handover to hand over or take over, unless AGENTNAVE_HOST_SESSION_ID is injected for this chat or the host gives this server its native session ID (Claude Code: CLAUDE_CODE_SESSION_ID)."
      • changedInput schema / $defs / ProviderName / enum
        Previous value: -[
        -  "antigravity",
        -  "claude",
        -  "codebuddy",
        -  "codex",
        -  "deepseek",
        -  "grok",
        -  "pi"
        -]New value: +[
        +  "antigravity",
        +  "claude",
        +  "codebuddy",
        +  "codex",
        +  "deepseek",
        +  "grok",
        +  "pi",
        +  "zcode"
        +]
      • changedInput schema / properties / provider / description
        Previous value: -"CLI requested by the user, not a model ID. Providers permitted by this host configuration: antigravity, claude, codebuddy, codex, deepseek, grok, pi. Excluded providers: none. start_agent rejects excluded providers; shows follow discussion member limits without host exclusions."New value: +"CLI requested by the user, not a model ID. Providers permitted by this host configuration: antigravity, claude, codebuddy, codex, deepseek, grok, pi, zcode. Excluded providers: none. start_agent rejects excluded providers; meetings follow discussion member limits without host exclusions."
      • addedOutput schema / $defs / UnreceivedPayload
        Added value: +{
        +  "properties": {
        +    "error": {
        +      "$ref": "#/$defs/InvocationErrorPayload"
        +    },
        +    "id": {
        +      "title": "Id",
        +      "type": "string"
        +    },
        +    "kind": {
        +      "enum": [
        +        "task",
        +        "round"
        +      ],
        +      "title": "Kind",
        +      "type": "string"
        +    },
        +    "status": {
        +      "title": "Status",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "id",
        +    "kind",
        +    "status"
        +  ],
        +  "title": "UnreceivedPayload",
        +  "type": "object"
        +}
      • addedOutput schema / properties / unreceived
        Added value: +{
        +  "items": {
        +    "$ref": "#/$defs/UnreceivedPayload"
        +  },
        +  "title": "Unreceived",
        +  "type": "array"
        +}
    • Changedwait3 fields changed
      • addedOutput schema / $defs / InvocationPayload / properties / warnings
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Warnings",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / SeatRunPayload / properties / output_returned
        Added value: +{
        +  "title": "Output Returned",
        +  "type": "boolean"
        +}
      • addedOutput schema / $defs / SeatRunPayload / properties / warnings
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Warnings",
        +  "type": "array"
        +}
  4. 8 tool updatesv0.49.0
    • Changedcancel1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changeddecide_answers1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedlist1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedlist_members6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / $defs / HostName / enum
        Previous value: -[
        -  "codex",
        -  "claude",
        -  "codebuddy",
        -  "workbuddy",
        -  "grok",
        -  "antigravity",
        -  "pi",
        -  "gemini",
        -  "opencode",
        -  "hermes"
        -]New value: +[
        +  "codex",
        +  "claude",
        +  "codebuddy",
        +  "workbuddy",
        +  "grok",
        +  "antigravity",
        +  "pi",
        +  "opencode",
        +  "hermes"
        +]
      • addedOutput schema / $defs / ReviewRole
        Added value: +{
        +  "enum": [
        +    "correctness-reviewer",
        +    "architecture-reviewer",
        +    "security-reviewer",
        +    "performance-reviewer",
        +    "test-reliability-reviewer",
        +    "simplicity-reviewer",
        +    "specialist-reviewer",
        +    "adversarial-verifier"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / $defs / ReviewSeatStatus
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "alternatives": {
        +      "items": {
        +        "$ref": "#/$defs/ProviderName"
        +      },
        +      "title": "Alternatives",
        +      "type": "array"
        +    },
        +    "available": {
        +      "title": "Available",
        +      "type": "boolean"
        +    },
        +    "effort": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "title": "Effort"
        +    },
        +    "model": {
        +      "title": "Model",
        +      "type": "string"
        +    },
        +    "provider": {
        +      "$ref": "#/$defs/ProviderName"
        +    },
        +    "reason": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "title": "Reason"
        +    }
        +  },
        +  "required": [
        +    "provider",
        +    "model",
        +    "effort",
        +    "available",
        +    "reason",
        +    "alternatives"
        +  ],
        +  "title": "ReviewSeatStatus",
        +  "type": "object"
        +}
      • addedOutput schema / properties / review
        Added value: +{
        +  "additionalProperties": {
        +    "$ref": "#/$defs/ReviewSeatStatus"
        +  },
        +  "default": {},
        +  "propertyNames": {
        +    "$ref": "#/$defs/ReviewRole"
        +  },
        +  "title": "Review",
        +  "type": "object"
        +}
      • addedOutput schema / properties / review_error
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Review Error"
        +}
    • Changedread_conversation1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedrun_round5 fields changed
      • changedInput schema / $defs / GroupSeatSpec / properties / provider_options / description
        Previous value: -"Options for this seat's CLI; omitted keys use discussion member defaults."New value: +"Options for this seat's CLI, e.g. {\"model\": \"gpt-6.1-sol\", \"effort\": \"medium\"}; omitted keys use discussion member defaults."
      • changedInput schema / $defs / ManagerSessionId / description
        Previous value: -"Current manager chat/session ID, shared by all tasks and groups in that chat. Use the host's real session ID when available; otherwise generate one UUID once for this manager chat and keep reusing it. A different chat needs a different ID. Never use the CLI name, MCP connection ID, or subagent session_id. Omission uses AGENTNAVE_HOST_SESSION_ID if configured, else keeps records separate."New value: +"Current manager chat/session ID, shared by all tasks and groups in that chat. Use the host's real session ID when available; otherwise generate one UUID once for this manager chat and keep reusing it. A different chat needs a different ID. Never use the CLI name, MCP connection ID, or subagent session_id. Required by start_agent and run_round unless AGENTNAVE_HOST_SESSION_ID is injected for this chat."
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / title / anyOf
        Previous value: -[
        -  {
        -    "maxLength": 200,
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / title / description
        Previous value: -"New show only: its title."New value: +"New show only: its short title, at most 48 columns (CJK characters count 2). If it is the manager chat's first conversation, it also names the workspace."
    • Changedstart_agent5 fields changed
      • changedInput schema / $defs / ManagerSessionId / description
        Previous value: -"Current manager chat/session ID, shared by all tasks and groups in that chat. Use the host's real session ID when available; otherwise generate one UUID once for this manager chat and keep reusing it. A different chat needs a different ID. Never use the CLI name, MCP connection ID, or subagent session_id. Omission uses AGENTNAVE_HOST_SESSION_ID if configured, else keeps records separate."New value: +"Current manager chat/session ID, shared by all tasks and groups in that chat. Use the host's real session ID when available; otherwise generate one UUID once for this manager chat and keep reusing it. A different chat needs a different ID. Never use the CLI name, MCP connection ID, or subagent session_id. Required by start_agent and run_round unless AGENTNAVE_HOST_SESSION_ID is injected for this chat."
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / provider_options / description
        Previous value: -"Explicit options for the selected CLI. Call list_members(provider=...) for supported keys. Omitted options use configured App defaults, then native CLI settings."New value: +"Explicit options for the selected CLI, e.g. {\"model\": \"gpt-6.1-sol\", \"effort\": \"medium\"}; model is this CLI's own model ID as list_members shows it. Call list_members(provider=...) for supported keys. Omitted options use configured App defaults, then native CLI settings."
      • changedInput schema / properties / title / anyOf
        Previous value: -[
        -  {
        -    "maxLength": 200,
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / title / description
        Previous value: -"Title for a new task conversation."New value: +"Short title for a new task conversation, at most 48 columns (CJK characters count 2). The first conversation of a manager chat also names its workspace for good, so give that one the chat's purpose; later private tasks may omit it."
    • Changedwait1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
  5. 4 tool updatesv0.41.0
    • Changedlist2 fields changed
      • addedOutput schema / $defs / InvocationErrorPayload
        Added value: +{
        +  "properties": {
        +    "code": {
        +      "title": "Code",
        +      "type": "string"
        +    },
        +    "message": {
        +      "title": "Message",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "title": "InvocationErrorPayload",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / InvocationListItem / properties / error
        Added value: +{
        +  "$ref": "#/$defs/InvocationErrorPayload"
        +}
    • Changedread_conversation1 field changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 500,
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "At most this many of the most recent messages or tasks; omitted counts the rest.",
        +  "title": "Limit"
        +}
    • Changedstart_agent1 field changed
      • addedOutput schema / properties / warnings
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Warnings",
        +  "type": "array"
        +}
    • Changedwait10 fields changed
      • addedInput schema / properties / ids / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / ids / default
        Added value: +null
      • changedInput schema / properties / ids / description
        Previous value: -"Distinct invocation_ids from start_agent and round_ids from run_round."New value: +"Distinct invocation_ids from start_agent and round_ids from run_round. Omit to wait on the inbox: every task and round of this server whose end you have not received yet."
      • removedInput schema / properties / ids / items
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / ids / minItems
        Removed value: -1
      • removedInput schema / properties / ids / type
        Removed value: -"array"
      • addedInput schema / properties / manager_session_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "With ids omitted, only this boss chat's tasks and rounds; same value as start_agent and run_round. Ignored with ids.",
        +  "title": "Manager Session Id"
        +}
      • addedInput schema / properties / wait_seconds
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 300,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Longest wait in seconds, 300 when omitted; 0 returns at once, with the ready handles or a running snapshot of each. Never stops the work.",
        +  "title": "Wait Seconds"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "ids"
        -]
      • changedOutput schema / properties / reason / enum
        Previous value: -[
        -  "ready",
        -  "wait_elapsed"
        -]New value: +[
        +  "ready",
        +  "wait_elapsed",
        +  "nothing_pending"
        +]
  6. 19 tool updatesv0.35.0
    • Addedcancel
    • Removedcancel_agent
    • Removedcancel_round
    • Changeddecide_answers3 fields changed
      • changedInput schema / $defs / Decision / enum
        Previous value: -[
        -  "publish",
        -  "discard"
        -]New value: +[
        +  "publish",
        +  "private"
        +]
      • changedInput schema / properties / decisions / description
        Previous value: -"seat_id -> publish or discard"New value: +"seat_id -> publish or private"
      • changedOutput schema / $defs / Decision / enum
        Previous value: -[
        -  "publish",
        -  "discard"
        -]New value: +[
        +  "publish",
        +  "private"
        +]
    • Removeddescribe_provider
    • Addedlist
    • Removedlist_conversations
    • Removedlist_invocations
    • Changedlist_members5 fields changed
      • addedInput schema / $defs
        Added value: +{
        +  "ProviderName": {
        +    "enum": [
        +      "antigravity",
        +      "claude",
        +      "codebuddy",
        +      "codex",
        +      "deepseek",
        +      "grok",
        +      "pi"
        +    ],
        +    "type": "string"
        +  }
        +}
      • addedInput schema / properties / provider
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/ProviderName"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Also return this CLI's permitted status and supported options."
        +}
      • addedOutput schema / $defs / ProviderDetails
        Added value: +{
        +  "properties": {
        +    "permitted": {
        +      "title": "Permitted",
        +      "type": "boolean"
        +    },
        +    "provider": {
        +      "$ref": "#/$defs/ProviderName"
        +    },
        +    "show_permitted": {
        +      "title": "Show Permitted",
        +      "type": "boolean"
        +    },
        +    "supported_options": {
        +      "title": "Supported Options",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "provider",
        +    "permitted",
        +    "show_permitted",
        +    "supported_options"
        +  ],
        +  "title": "ProviderDetails",
        +  "type": "object"
        +}
      • addedOutput schema / properties / provider_details
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/ProviderDetails"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • changedOutput schema / title
        Previous value: -"MemberList"New value: +"MemberListPayload"
    • Removedopen_group
    • Removedpost_host_message
    • Changedread_conversation7 fields changed
      • addedInput schema / properties / include_private
        Added value: +{
        +  "default": false,
        +  "description": "Shows: also each seat's private instructions and the answers kept private.",
        +  "title": "Include Private",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / since_round
        Added value: +{
        +  "default": 0,
        +  "description": "Shows: only messages from this round on; 0 includes host remarks posted before the first round.",
        +  "minimum": 0,
        +  "title": "Since Round",
        +  "type": "integer"
        +}
      • removedOutput schema / $defs
        Removed value: -{
        -  "Conversation": {
        -    "properties": {
        -      "created": {
        -        "title": "Created",
        -        "type": "string"
        -      },
        -      "cwd": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Cwd"
        -      },
        -      "entries": {
        -        "items": {
        -          "$ref": "#/$defs/EntryRecord"
        -        },
        -        "title": "Entries",
        -        "type": "array"
        -      },
        -      "host": {
        -        "anyOf": [
        -          {
        -            "$ref": "#/$defs/HostName"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null
        -      },
        -      "host_source": {
        -        "$ref": "#/$defs/HostSource",
        -        "default": "unknown"
        -      },
        -      "id": {
        -        "title": "Id",
        -        "type": "string"
        -      },
        -      "isolated": {
        -        "default": false,
        -        "title": "Isolated",
        -        "type": "boolean"
        -      },
        -      "kind": {
        -        "enum": [
        -          "show",
        -          "task"
        -        ],
        -        "title": "Kind",
        -        "type": "string"
        -      },
        -      "manager_session": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Manager Session"
        -      },
        -      "review": {
        -        "default": false,
        -        "title": "Review",
        -        "type": "boolean"
        -      },
        -      "rounds": {
        -        "items": {
        -          "$ref": "#/$defs/RoundRecord"
        -        },
        -        "title": "Rounds",
        -        "type": "array"
        -      },
        -      "seats": {
        -        "items": {
        -          "$ref": "#/$defs/SeatRecord"
        -        },
        -        "title": "Seats",
        -        "type": "array"
        -      },
        -      "sessions": {
        -        "additionalProperties": {
        -          "$ref": "#/$defs/SessionRecord"
        -        },
        -        "title": "Sessions",
        -        "type": "object"
        -      },
        -      "tasks": {
        -        "items": {
        -          "$ref": "#/$defs/TaskRecord"
        -        },
        -        "title": "Tasks",
        -        "type": "array"
        -      },
        -      "title": {
        -        "title": "Title",
        -        "type": "string"
        -      },
        -      "version": {
        -        "const": 2,
        -        "default": 2,
        -        "title": "Version",
        -        "type": "integer"
        -      }
        -    },
        -    "required": [
        -      "id",
        -      "title",
        -      "kind"
        -    ],
        -    "title": "Conversation",
        -    "type": "object"
        -  },
        -  "EntryRecord": {
        -    "properties": {
        -      "forward_id": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Forward Id"
        -      },
        -      "forward_source": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Forward Source"
        -      },
        -      "kind": {
        -        "enum": [
        -          "task",
        -          "host",
        -          "answer",
        -          "absent",
        -          "forward"
        -        ],
        -        "title": "Kind",
        -        "type": "string"
        -      },
        -      "manager_model": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Manager Model"
        -      },
        -      "manager_reported_model": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Manager Reported Model"
        -      },
        -      "reported_model": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Reported Model"
        -      },
        -      "round": {
        -        "title": "Round",
        -        "type": "integer"
        -      },
        -      "seat": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Seat"
        -      },
        -      "text": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Text"
        -      },
        -      "time": {
        -        "title": "Time",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "round",
        -      "kind",
        -      "time"
        -    ],
        -    "title": "EntryRecord",
        -    "type": "object"
        -  },
        -  "HostName": {
        -    "enum": [
        -      "codex",
        -      "claude",
        -      "codebuddy",
        -      "workbuddy",
        -      "grok",
        -      "antigravity",
        -      "pi",
        -      "gemini",
        -      "opencode",
        -      "hermes"
        -    ],
        -    "type": "string"
        -  },
        -  "HostSource": {
        -    "enum": [
        -      "env",
        -      "parent",
        -      "unknown"
        -    ],
        -    "type": "string"
        -  },
        -  "ProviderOption": {
        -    "anyOf": [
        -      {
        -        "type": "string"
        -      },
        -      {
        -        "type": "integer"
        -      },
        -      {
        -        "type": "number"
        -      },
        -      {
        -        "type": "boolean"
        -      }
        -    ]
        -  },
        -  "Review": {
        -    "enum": [
        -      "pending",
        -      "publish",
        -      "discard"
        -    ],
        -    "type": "string"
        -  },
        -  "RoundOrder": {
        -    "enum": [
        -      "parallel",
        -      "serial"
        -    ],
        -    "type": "string"
        -  },
        -  "RoundRecord": {
        -    "properties": {
        -      "error": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Error"
        -      },
        -      "id": {
        -        "title": "Id",
        -        "type": "string"
        -      },
        -      "number": {
        -        "title": "Number",
        -        "type": "integer"
        -      },
        -      "order": {
        -        "$ref": "#/$defs/RoundOrder"
        -      },
        -      "seats": {
        -        "items": {
        -          "$ref": "#/$defs/SeatRunRecord"
        -        },
        -        "title": "Seats",
        -        "type": "array"
        -      },
        -      "status": {
        -        "default": "running",
        -        "enum": [
        -          "running",
        -          "finished",
        -          "failed",
        -          "cancelled",
        -          "interrupted"
        -        ],
        -        "title": "Status",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "id",
        -      "number",
        -      "order",
        -      "seats"
        -    ],
        -    "title": "RoundRecord",
        -    "type": "object"
        -  },
        -  "SeatRecord": {
        -    "properties": {
        -      "access": {
        -        "anyOf": [
        -          {
        -            "enum": [
        -              "read",
        -              "write"
        -            ],
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Access"
        -      },
        -      "cwd": {
        -        "title": "Cwd",
        -        "type": "string"
        -      },
        -      "id": {
        -        "title": "Id",
        -        "type": "string"
        -      },
        -      "provider": {
        -        "title": "Provider",
        -        "type": "string"
        -      },
        -      "provider_options": {
        -        "additionalProperties": {
        -          "$ref": "#/$defs/ProviderOption"
        -        },
        -        "title": "Provider Options",
        -        "type": "object"
        -      },
        -      "role": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Role"
        -      }
        -    },
        -    "required": [
        -      "id",
        -      "provider",
        -      "cwd"
        -    ],
        -    "title": "SeatRecord",
        -    "type": "object"
        -  },
        -  "SeatRunRecord": {
        -    "properties": {
        -      "committed": {
        -        "default": false,
        -        "title": "Committed",
        -        "type": "boolean"
        -      },
        -      "error": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Error"
        -      },
        -      "instruction": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Instruction"
        -      },
        -      "output": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Output"
        -      },
        -      "reported_model": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Reported Model"
        -      },
        -      "review": {
        -        "anyOf": [
        -          {
        -            "$ref": "#/$defs/Review"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null
        -      },
        -      "seat_id": {
        -        "title": "Seat Id",
        -        "type": "string"
        -      },
        -      "status": {
        -        "default": "pending",
        -        "enum": [
        -          "pending",
        -          "running",
        -          "succeeded",
        -          "failed",
        -          "blocked",
        -          "cancelled",
        -          "not_started",
        -          "interrupted"
        -        ],
        -        "title": "Status",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "seat_id"
        -    ],
        -    "title": "SeatRunRecord",
        -    "type": "object"
        -  },
        -  "SessionRecord": {
        -    "properties": {
        -      "cursor": {
        -        "default": 0,
        -        "title": "Cursor",
        -        "type": "integer"
        -      },
        -      "session_id": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Session Id"
        -      }
        -    },
        -    "title": "SessionRecord",
        -    "type": "object"
        -  },
        -  "TaskRecord": {
        -    "properties": {
        -      "access": {
        -        "anyOf": [
        -          {
        -            "enum": [
        -              "read",
        -              "write"
        -            ],
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Access"
        -      },
        -      "cwd": {
        -        "title": "Cwd",
        -        "type": "string"
        -      },
        -      "elapsed_ms": {
        -        "default": 0,
        -        "title": "Elapsed Ms",
        -        "type": "integer"
        -      },
        -      "error": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Error"
        -      },
        -      "forward": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "title": "Forward",
        -        "type": "array"
        -      },
        -      "id": {
        -        "title": "Id",
        -        "type": "string"
        -      },
        -      "manager_model": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Manager Model"
        -      },
        -      "manager_reported_model": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Manager Reported Model"
        -      },
        -      "model": {
        -        "title": "Model",
        -        "type": "string"
        -      },
        -      "output": {
        -        "default": "",
        -        "title": "Output",
        -        "type": "string"
        -      },
        -      "prompt": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Prompt"
        -      },
        -      "provider": {
        -        "title": "Provider",
        -        "type": "string"
        -      },
        -      "reported_model": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Reported Model"
        -      },
        -      "role": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Role"
        -      },
        -      "session_id": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Session Id"
        -      },
        -      "status": {
        -        "default": "running",
        -        "title": "Status",
        -        "type": "string"
        -      },
        -      "time": {
        -        "title": "Time",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "id",
        -      "provider",
        -      "model",
        -      "cwd",
        -      "time"
        -    ],
        -    "title": "TaskRecord",
        -    "type": "object"
        -  }
        -}
      • addedOutput schema / additionalProperties
        Added value: +true
      • removedOutput schema / properties
        Removed value: -{
        -  "conversation": {
        -    "$ref": "#/$defs/Conversation"
        -  },
        -  "director_url": {
        -    "title": "Director Url",
        -    "type": "string"
        -  },
        -  "public_url": {
        -    "title": "Public Url",
        -    "type": "string"
        -  },
        -  "writable": {
        -    "title": "Writable",
        -    "type": "boolean"
        -  }
        -}
      • removedOutput schema / required
        Removed value: -[
        -  "conversation",
        -  "writable"
        -]
      • changedOutput schema / title
        Previous value: -"ConversationView"New value: +"read_conversationDictOutput"
    • Changedrun_round43 fields changed
      • addedInput schema / $defs / GroupSeatSpec
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "access": {
        +      "anyOf": [
        +        {
        +          "enum": [
        +            "read",
        +            "write"
        +          ],
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Declared desk access: read for exploring, planning or reviewing, write for changing files. Recorded and shown only; it never changes the CLI's native permissions.",
        +      "title": "Access"
        +    },
        +    "cwd": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Absolute directory for this seat; defaults to the group cwd.",
        +      "title": "Cwd"
        +    },
        +    "id": {
        +      "pattern": "^[a-z][a-z0-9_-]{0,31}$",
        +      "title": "Id",
        +      "type": "string"
        +    },
        +    "provider": {
        +      "$ref": "#/$defs/ProviderName"
        +    },
        +    "provider_options": {
        +      "additionalProperties": {
        +        "$ref": "#/$defs/ProviderOption"
        +      },
        +      "description": "Options for this seat's CLI; omitted keys use discussion member defaults.",
        +      "title": "Provider Options",
        +      "type": "object"
        +    },
        +    "role": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "Optional desk role for this seat; 1–40 characters after trimming, no newlines or control characters. Blank or omitted means no role.",
        +      "title": "Role"
        +    }
        +  },
        +  "required": [
        +    "id",
        +    "provider"
        +  ],
        +  "title": "GroupSeatSpec",
        +  "type": "object"
        +}
      • addedInput schema / $defs / ProviderName
        Added value: +{
        +  "enum": [
        +    "antigravity",
        +    "claude",
        +    "codebuddy",
        +    "codex",
        +    "deepseek",
        +    "grok",
        +    "pi"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / $defs / ProviderOption
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "boolean"
        +    }
        +  ]
        +}
      • addedInput schema / properties / cwd
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "New show only: absolute directory seats run in; ignored when isolated.",
        +  "title": "Cwd"
        +}
      • changedInput schema / properties / forward / description
        Previous value: -"Message ids from wait_agent, wait_any, wait_round, decide_answers or post_host_message to add as committed forward entries before this round's task, in order. Only succeeded tasks and committed entries of this manager workspace qualify; at most 20, no repeats. Seats receive them as data, not instructions."New value: +"Message ids from wait, run_round, decide_answers or read_conversation to add as committed forward entries before this round's task, in order. Only succeeded tasks and committed entries of this manager workspace qualify; at most 20, no repeats. Seats receive them as data, not instructions."
      • addedInput schema / properties / group_id / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / group_id / default
        Added value: +null
      • addedInput schema / properties / group_id / description
        Added value: +"Show to continue; omit to open a new show from title and members."
      • removedInput schema / properties / group_id / type
        Removed value: -"string"
      • addedInput schema / properties / isolated
        Added value: +{
        +  "default": false,
        +  "description": "New show only: each seat gets its own empty directory and restricted_tools; seat options may only set model and effort (and Pi's provider).",
        +  "title": "Isolated",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / members
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "$ref": "#/$defs/GroupSeatSpec"
        +      },
        +      "maxItems": 7,
        +      "minItems": 2,
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "New show only: its 2–7 seats.",
        +  "title": "Members"
        +}
      • addedInput schema / properties / order / default
        Added value: +"parallel"
      • addedInput schema / properties / prompt / anyOf
        Added value: +[
        +  {
        +    "maxLength": 12000,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / prompt / default
        Added value: +null
      • changedInput schema / properties / prompt / description
        Previous value: -"Shared task for this round, visible to all seats."New value: +"Shared task for this round, visible to all seats; without seats, a public host remark every seat receives with its next round. Omit only to open a new show without posting anything."
      • removedInput schema / properties / prompt / minLength
        Removed value: -1
      • removedInput schema / properties / prompt / type
        Removed value: -"string"
      • addedInput schema / properties / review
        Added value: +{
        +  "default": false,
        +  "description": "New show only: hold each answer until decide_answers decides it.",
        +  "title": "Review",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / seats / default
        Added value: +[]
      • changedInput schema / properties / seats / description
        Previous value: -"Ordered seat ids that each answer once this round."New value: +"Ordered seat ids that each answer once; empty posts prompt as a host remark."
      • removedInput schema / properties / seats / minItems
        Removed value: -1
      • addedInput schema / properties / title
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "New show only: its title.",
        +  "title": "Title"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "group_id",
        -  "seats",
        -  "order",
        -  "prompt"
        -]
      • addedOutput schema / $defs / GroupSeatPayload
        Added value: +{
        +  "properties": {
        +    "access": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "title": "Access"
        +    },
        +    "cwd": {
        +      "title": "Cwd",
        +      "type": "string"
        +    },
        +    "defaults_applied": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "title": "Defaults Applied",
        +      "type": "array"
        +    },
        +    "effort": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "title": "Effort"
        +    },
        +    "id": {
        +      "title": "Id",
        +      "type": "string"
        +    },
        +    "model": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "title": "Model"
        +    },
        +    "provider": {
        +      "title": "Provider",
        +      "type": "string"
        +    },
        +    "role": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "title": "Role"
        +    }
        +  },
        +  "required": [
        +    "id",
        +    "provider",
        +    "cwd",
        +    "model",
        +    "effort",
        +    "role",
        +    "access",
        +    "defaults_applied"
        +  ],
        +  "title": "GroupSeatPayload",
        +  "type": "object"
        +}
      • addedOutput schema / $defs / RoundPayload
        Added value: +{
        +  "properties": {
        +    "elapsed_ms": {
        +      "title": "Elapsed Ms",
        +      "type": "integer"
        +    },
        +    "entries": {
        +      "items": {
        +        "$ref": "#/$defs/CommittedEntryPayload"
        +      },
        +      "title": "Entries",
        +      "type": "array"
        +    },
        +    "error": {
        +      "title": "Error",
        +      "type": "string"
        +    },
        +    "group_id": {
        +      "title": "Group Id",
        +      "type": "string"
        +    },
        +    "order": {
        +      "enum": [
        +        "parallel",
        +        "serial"
        +      ],
        +      "title": "Order",
        +      "type": "string"
        +    },
        +    "reason": {
        +      "title": "Reason",
        +      "type": "string"
        +    },
        +    "round": {
        +      "title": "Round",
        +      "type": "integer"
        +    },
        +    "round_id": {
        +      "title": "Round Id",
        +      "type": "string"
        +    },
        +    "seats": {
        +      "items": {
        +        "$ref": "#/$defs/SeatRunPayload"
        +      },
        +      "title": "Seats",
        +      "type": "array"
        +    },
        +    "status": {
        +      "enum": [
        +        "running",
        +        "finished",
        +        "failed",
        +        "cancelled"
        +      ],
        +      "title": "Status",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "round_id",
        +    "group_id",
        +    "round",
        +    "order",
        +    "status",
        +    "reason",
        +    "elapsed_ms",
        +    "seats",
        +    "entries"
        +  ],
        +  "title": "RoundPayload",
        +  "type": "object"
        +}
      • changedOutput schema / $defs / SeatRunPayload / properties / status / enum
        Previous value: -[
        -  "pending",
        -  "running",
        -  "succeeded",
        -  "failed",
        -  "blocked",
        -  "cancelled",
        -  "not_started",
        -  "pending_review",
        -  "discarded"
        -]New value: +[
        +  "pending",
        +  "running",
        +  "succeeded",
        +  "failed",
        +  "blocked",
        +  "cancelled",
        +  "not_started",
        +  "pending_review",
        +  "private"
        +]
      • removedOutput schema / properties / dashboard_error
        Removed value: -{
        -  "title": "Dashboard Error",
        -  "type": "string"
        -}
      • removedOutput schema / properties / dashboard_url
        Removed value: -{
        -  "title": "Dashboard Url",
        -  "type": "string"
        -}
      • removedOutput schema / properties / director_url
        Removed value: -{
        -  "title": "Director Url",
        -  "type": "string"
        -}
      • removedOutput schema / properties / elapsed_ms
        Removed value: -{
        -  "title": "Elapsed Ms",
        -  "type": "integer"
        -}
      • removedOutput schema / properties / error
        Removed value: -{
        -  "title": "Error",
        -  "type": "string"
        -}
      • addedOutput schema / properties / members
        Added value: +{
        +  "items": {
        +    "$ref": "#/$defs/GroupSeatPayload"
        +  },
        +  "title": "Members",
        +  "type": "array"
        +}
      • removedOutput schema / properties / order
        Removed value: -{
        -  "enum": [
        -    "parallel",
        -    "serial"
        -  ],
        -  "title": "Order",
        -  "type": "string"
        -}
      • removedOutput schema / properties / public_url
        Removed value: -{
        -  "title": "Public Url",
        -  "type": "string"
        -}
      • removedOutput schema / properties / reason
        Removed value: -{
        -  "title": "Reason",
        -  "type": "string"
        -}
      • addedOutput schema / properties / round / $ref
        Added value: +"#/$defs/RoundPayload"
      • removedOutput schema / properties / round / title
        Removed value: -"Round"
      • removedOutput schema / properties / round / type
        Removed value: -"integer"
      • removedOutput schema / properties / round_id
        Removed value: -{
        -  "title": "Round Id",
        -  "type": "string"
        -}
      • removedOutput schema / properties / seats
        Removed value: -{
        -  "items": {
        -    "$ref": "#/$defs/SeatRunPayload"
        -  },
        -  "title": "Seats",
        -  "type": "array"
        -}
      • removedOutput schema / properties / status
        Removed value: -{
        -  "enum": [
        -    "running",
        -    "finished",
        -    "failed",
        -    "cancelled"
        -  ],
        -  "title": "Status",
        -  "type": "string"
        -}
      • changedOutput schema / required
        Previous value: -[
        -  "round_id",
        -  "group_id",
        -  "round",
        -  "order",
        -  "status",
        -  "reason",
        -  "elapsed_ms",
        -  "seats",
        -  "entries"
        -]New value: +[
        +  "group_id"
        +]
      • changedOutput schema / title
        Previous value: -"RoundPayload"New value: +"ShowRunPayload"
    • Changedstart_agent13 fields changed
      • changedInput schema / properties / access / description
        Previous value: -"Declared desk access: read for exploring, planning or reviewing, write for changing files. Recorded and shown only; it does not change the CLI's native permissions. A desk keeps its first declared tier in this manager workspace; omitting it inherits that tier, and a different tier is rejected, so use another role and pass findings with forward or a meeting instead."New value: +"Declared desk access: read for exploring, planning or reviewing, write for changing files. Recorded and shown only; it never changes the CLI's native permissions."
      • changedInput schema / properties / forward / description
        Previous value: -"Message ids from wait_agent, wait_any, wait_round, decide_answers or post_host_message to inject before the prompt in order. Only succeeded tasks and committed entries of this manager workspace qualify; at most 20, no repeats. The injected text is labelled as data, not instructions, and the saved task prompt stays your original text."New value: +"Message ids from wait, run_round, decide_answers or read_conversation to inject before the prompt in order. Only succeeded tasks and committed entries of this manager workspace qualify; at most 20, no repeats. The injected text is labelled as data, not instructions, and the saved task prompt stays your original text."
      • removedInput schema / properties / new_thread
        Removed value: -{
        -  "default": false,
        -  "description": "true always opens a fresh private thread instead of continuing this desk's most recent one; it cannot be combined with session_id or conversation_id.",
        -  "title": "New Thread",
        -  "type": "boolean"
        -}
      • changedInput schema / properties / provider / description
        Previous value: -"CLI requested by the user, not a model ID. Providers permitted by this host configuration: antigravity, claude, codebuddy, codex, deepseek, grok, pi. Excluded providers: none. start_agent rejects excluded providers; groups follow discussion member limits without host exclusions."New value: +"CLI requested by the user, not a model ID. Providers permitted by this host configuration: antigravity, claude, codebuddy, codex, deepseek, grok, pi. Excluded providers: none. start_agent rejects excluded providers; shows follow discussion member limits without host exclusions."
      • changedInput schema / properties / provider_options / description
        Previous value: -"Explicit options for the selected CLI. Call describe_provider(provider) for supported keys. Omitted options use configured App defaults, then native CLI settings."New value: +"Explicit options for the selected CLI. Call list_members(provider=...) for supported keys. Omitted options use configured App defaults, then native CLI settings."
      • changedInput schema / properties / role / description
        Previous value: -"Optional desk role for this CLI; 1–40 characters after trimming, no newlines or control characters. Blank or omitted means no role. The desk identity is (provider, requested model, role)."New value: +"Optional label shown on this task's desk; 1–40 characters after trimming, no newlines or control characters. Blank or omitted means no label. Each native thread is its own desk, whatever its role."
      • changedInput schema / properties / session_id / description
        Previous value: -"To continue a specific native conversation, use the session_id returned by a finished invocation of the same provider; never use an invocation_id here. When omitted with a known manager_session_id, the task continues this desk's most recent private thread unless new_thread=true."New value: +"To continue a specific native conversation, use the session_id returned by a finished invocation of the same provider; never use an invocation_id here. Omitted, the task starts a new native thread: a new desk in the App."
      • removedOutput schema / properties / dashboard_error
        Removed value: -{
        -  "title": "Dashboard Error",
        -  "type": "string"
        -}
      • removedOutput schema / properties / dashboard_url
        Removed value: -{
        -  "title": "Dashboard Url",
        -  "type": "string"
        -}
      • removedOutput schema / properties / director_url
        Removed value: -{
        -  "title": "Director Url",
        -  "type": "string"
        -}
      • removedOutput schema / properties / public_url
        Removed value: -{
        -  "title": "Public Url",
        -  "type": "string"
        -}
      • removedOutput schema / properties / resumed
        Removed value: -{
        -  "title": "Resumed",
        -  "type": "boolean"
        -}
      • changedOutput schema / required
        Previous value: -[
        -  "invocation_id",
        -  "status",
        -  "reason",
        -  "elapsed_ms",
        -  "conversation_id",
        -  "resumed",
        -  "access"
        -]New value: +[
        +  "invocation_id",
        +  "status",
        +  "reason",
        +  "elapsed_ms",
        +  "conversation_id",
        +  "access"
        +]
    • Removedupdate_conversation
    • Addedwait
    • Removedwait_agent
    • Removedwait_any
    • Removedwait_round
  7. 13 tool updatesv0.31.0
    • Changedcancel_agent1 field changed
      • addedOutput schema / properties / message_id
        Added value: +{
        +  "title": "Message Id",
        +  "type": "string"
        +}
    • Changedcancel_round3 fields changed
      • addedOutput schema / $defs / CommittedEntryPayload
        Added value: +{
        +  "properties": {
        +    "kind": {
        +      "enum": [
        +        "task",
        +        "answer",
        +        "absent",
        +        "forward",
        +        "host"
        +      ],
        +      "title": "Kind",
        +      "type": "string"
        +    },
        +    "message_id": {
        +      "title": "Message Id",
        +      "type": "string"
        +    },
        +    "round": {
        +      "title": "Round",
        +      "type": "integer"
        +    },
        +    "seat": {
        +      "title": "Seat",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "message_id",
        +    "kind",
        +    "round"
        +  ],
        +  "title": "CommittedEntryPayload",
        +  "type": "object"
        +}
      • addedOutput schema / properties / entries
        Added value: +{
        +  "items": {
        +    "$ref": "#/$defs/CommittedEntryPayload"
        +  },
        +  "title": "Entries",
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "round_id",
        -  "group_id",
        -  "round",
        -  "order",
        -  "status",
        -  "reason",
        -  "elapsed_ms",
        -  "seats"
        -]New value: +[
        +  "round_id",
        +  "group_id",
        +  "round",
        +  "order",
        +  "status",
        +  "reason",
        +  "elapsed_ms",
        +  "seats",
        +  "entries"
        +]
    • Changeddecide_answers5 fields changed
      • addedOutput schema / $defs / CommittedEntryPayload
        Added value: +{
        +  "properties": {
        +    "kind": {
        +      "enum": [
        +        "task",
        +        "answer",
        +        "absent",
        +        "forward",
        +        "host"
        +      ],
        +      "title": "Kind",
        +      "type": "string"
        +    },
        +    "message_id": {
        +      "title": "Message Id",
        +      "type": "string"
        +    },
        +    "round": {
        +      "title": "Round",
        +      "type": "integer"
        +    },
        +    "seat": {
        +      "title": "Seat",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "message_id",
        +    "kind",
        +    "round"
        +  ],
        +  "title": "CommittedEntryPayload",
        +  "type": "object"
        +}
      • addedOutput schema / properties / entries
        Added value: +{
        +  "items": {
        +    "$ref": "#/$defs/CommittedEntryPayload"
        +  },
        +  "title": "Entries",
        +  "type": "array"
        +}
      • addedOutput schema / properties / error
        Added value: +{
        +  "title": "Error",
        +  "type": "string"
        +}
      • addedOutput schema / properties / status
        Added value: +{
        +  "enum": [
        +    "running",
        +    "review",
        +    "finished",
        +    "failed",
        +    "cancelled",
        +    "interrupted"
        +  ],
        +  "title": "Status",
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "round_id",
        -  "decisions",
        -  "pending_review",
        -  "committed"
        -]New value: +[
        +  "round_id",
        +  "decisions",
        +  "pending_review",
        +  "committed",
        +  "entries",
        +  "status"
        +]
    • Changeddescribe_provider2 fields changed
      • changedInput schema / $defs / ProviderName / enum
        Previous value: -[
        -  "antigravity",
        -  "claude",
        -  "codebuddy",
        -  "codex",
        -  "grok",
        -  "pi"
        -]New value: +[
        +  "antigravity",
        +  "claude",
        +  "codebuddy",
        +  "codex",
        +  "deepseek",
        +  "grok",
        +  "pi"
        +]
      • changedOutput schema / $defs / ProviderName / enum
        Previous value: -[
        -  "antigravity",
        -  "claude",
        -  "codebuddy",
        -  "codex",
        -  "grok",
        -  "pi"
        -]New value: +[
        +  "antigravity",
        +  "claude",
        +  "codebuddy",
        +  "codex",
        +  "deepseek",
        +  "grok",
        +  "pi"
        +]
    • Changedlist_members1 field changed
      • changedOutput schema / $defs / ProviderName / enum
        Previous value: -[
        -  "antigravity",
        -  "claude",
        -  "codebuddy",
        -  "codex",
        -  "grok",
        -  "pi"
        -]New value: +[
        +  "antigravity",
        +  "claude",
        +  "codebuddy",
        +  "codex",
        +  "deepseek",
        +  "grok",
        +  "pi"
        +]
    • Changedopen_group9 fields changed
      • addedInput schema / $defs / GroupSeatSpec / properties / access
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "read",
        +        "write"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Declared desk access: read for exploring, planning or reviewing, write for changing files. Recorded and shown only; it does not change the CLI's native permissions. A desk keeps its first declared tier in this manager workspace; omitting it inherits that tier, and a different tier is rejected, so use another role and pass findings with forward or a meeting instead.",
        +  "title": "Access"
        +}
      • addedInput schema / $defs / GroupSeatSpec / properties / role
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional desk role for this seat; 1–40 characters after trimming, no newlines or control characters. Blank or omitted means no role.",
        +  "title": "Role"
        +}
      • addedInput schema / $defs / ManagerSessionId
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Current manager chat/session ID, shared by all tasks and groups in that chat. Use the host's real session ID when available; otherwise generate one UUID once for this manager chat and keep reusing it. A different chat needs a different ID. Never use the CLI name, MCP connection ID, or subagent session_id. Omission uses AGENTNAVE_HOST_SESSION_ID if configured, else keeps records separate."
        +}
      • changedInput schema / $defs / ProviderName / enum
        Previous value: -[
        -  "antigravity",
        -  "claude",
        -  "codebuddy",
        -  "codex",
        -  "grok",
        -  "pi"
        -]New value: +[
        +  "antigravity",
        +  "claude",
        +  "codebuddy",
        +  "codex",
        +  "deepseek",
        +  "grok",
        +  "pi"
        +]
      • addedInput schema / properties / manager_session_id
        Added value: +{
        +  "$ref": "#/$defs/ManagerSessionId",
        +  "default": null
        +}
      • changedInput schema / properties / seats / maxItems
        Previous value: -6New value: +7
      • addedOutput schema / $defs / GroupSeatPayload / properties / access
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "title": "Access"
        +}
      • addedOutput schema / $defs / GroupSeatPayload / properties / role
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "title": "Role"
        +}
      • changedOutput schema / $defs / GroupSeatPayload / required
        Previous value: -[
        -  "id",
        -  "provider",
        -  "cwd",
        -  "model",
        -  "effort",
        -  "defaults_applied"
        -]New value: +[
        +  "id",
        +  "provider",
        +  "cwd",
        +  "model",
        +  "effort",
        +  "role",
        +  "access",
        +  "defaults_applied"
        +]
    • Changedpost_host_message4 fields changed
      • addedInput schema / $defs / ManagerSessionId
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Current manager chat/session ID, shared by all tasks and groups in that chat. Use the host's real session ID when available; otherwise generate one UUID once for this manager chat and keep reusing it. A different chat needs a different ID. Never use the CLI name, MCP connection ID, or subagent session_id. Omission uses AGENTNAVE_HOST_SESSION_ID if configured, else keeps records separate."
        +}
      • addedInput schema / properties / manager_session_id
        Added value: +{
        +  "$ref": "#/$defs/ManagerSessionId",
        +  "default": null
        +}
      • addedOutput schema / properties / message_id
        Added value: +{
        +  "title": "Message Id",
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "conversation_id",
        -  "entry_index"
        -]New value: +[
        +  "conversation_id",
        +  "entry_index",
        +  "message_id"
        +]
    • Changedread_conversation13 fields changed
      • addedOutput schema / $defs / EntryRecord / properties / forward_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Forward Id"
        +}
      • addedOutput schema / $defs / EntryRecord / properties / forward_source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Forward Source"
        +}
      • changedOutput schema / $defs / EntryRecord / properties / kind / enum
        Previous value: -[
        -  "task",
        -  "host",
        -  "answer",
        -  "absent"
        -]New value: +[
        +  "task",
        +  "host",
        +  "answer",
        +  "absent",
        +  "forward"
        +]
      • addedOutput schema / $defs / EntryRecord / properties / manager_reported_model
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Manager Reported Model"
        +}
      • addedOutput schema / $defs / EntryRecord / properties / reported_model
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Reported Model"
        +}
      • addedOutput schema / $defs / SeatRecord / properties / access
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "read",
        +        "write"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Access"
        +}
      • addedOutput schema / $defs / SeatRecord / properties / role
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Role"
        +}
      • addedOutput schema / $defs / SeatRunRecord / properties / reported_model
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Reported Model"
        +}
      • addedOutput schema / $defs / TaskRecord / properties / access
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "read",
        +        "write"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Access"
        +}
      • addedOutput schema / $defs / TaskRecord / properties / forward
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Forward",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / TaskRecord / properties / manager_reported_model
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Manager Reported Model"
        +}
      • addedOutput schema / $defs / TaskRecord / properties / reported_model
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Reported Model"
        +}
      • addedOutput schema / $defs / TaskRecord / properties / role
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Role"
        +}
    • Changedrun_round6 fields changed
      • addedInput schema / $defs / ManagerSessionId
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Current manager chat/session ID, shared by all tasks and groups in that chat. Use the host's real session ID when available; otherwise generate one UUID once for this manager chat and keep reusing it. A different chat needs a different ID. Never use the CLI name, MCP connection ID, or subagent session_id. Omission uses AGENTNAVE_HOST_SESSION_ID if configured, else keeps records separate."
        +}
      • addedInput schema / properties / forward
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Message ids from wait_agent, wait_any, wait_round, decide_answers or post_host_message to add as committed forward entries before this round's task, in order. Only succeeded tasks and committed entries of this manager workspace qualify; at most 20, no repeats. Seats receive them as data, not instructions.",
        +  "title": "Forward"
        +}
      • addedInput schema / properties / manager_session_id
        Added value: +{
        +  "$ref": "#/$defs/ManagerSessionId",
        +  "default": null
        +}
      • addedOutput schema / $defs / CommittedEntryPayload
        Added value: +{
        +  "properties": {
        +    "kind": {
        +      "enum": [
        +        "task",
        +        "answer",
        +        "absent",
        +        "forward",
        +        "host"
        +      ],
        +      "title": "Kind",
        +      "type": "string"
        +    },
        +    "message_id": {
        +      "title": "Message Id",
        +      "type": "string"
        +    },
        +    "round": {
        +      "title": "Round",
        +      "type": "integer"
        +    },
        +    "seat": {
        +      "title": "Seat",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "message_id",
        +    "kind",
        +    "round"
        +  ],
        +  "title": "CommittedEntryPayload",
        +  "type": "object"
        +}
      • addedOutput schema / properties / entries
        Added value: +{
        +  "items": {
        +    "$ref": "#/$defs/CommittedEntryPayload"
        +  },
        +  "title": "Entries",
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "round_id",
        -  "group_id",
        -  "round",
        -  "order",
        -  "status",
        -  "reason",
        -  "elapsed_ms",
        -  "seats"
        -]New value: +[
        +  "round_id",
        +  "group_id",
        +  "round",
        +  "order",
        +  "status",
        +  "reason",
        +  "elapsed_ms",
        +  "seats",
        +  "entries"
        +]
    • Changedstart_agent13 fields changed
      • addedInput schema / $defs / ManagerSessionId
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Current manager chat/session ID, shared by all tasks and groups in that chat. Use the host's real session ID when available; otherwise generate one UUID once for this manager chat and keep reusing it. A different chat needs a different ID. Never use the CLI name, MCP connection ID, or subagent session_id. Omission uses AGENTNAVE_HOST_SESSION_ID if configured, else keeps records separate."
        +}
      • changedInput schema / $defs / ProviderName / enum
        Previous value: -[
        -  "antigravity",
        -  "claude",
        -  "codebuddy",
        -  "codex",
        -  "grok",
        -  "pi"
        -]New value: +[
        +  "antigravity",
        +  "claude",
        +  "codebuddy",
        +  "codex",
        +  "deepseek",
        +  "grok",
        +  "pi"
        +]
      • addedInput schema / properties / access
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "read",
        +        "write"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Declared desk access: read for exploring, planning or reviewing, write for changing files. Recorded and shown only; it does not change the CLI's native permissions. A desk keeps its first declared tier in this manager workspace; omitting it inherits that tier, and a different tier is rejected, so use another role and pass findings with forward or a meeting instead.",
        +  "title": "Access"
        +}
      • addedInput schema / properties / forward
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Message ids from wait_agent, wait_any, wait_round, decide_answers or post_host_message to inject before the prompt in order. Only succeeded tasks and committed entries of this manager workspace qualify; at most 20, no repeats. The injected text is labelled as data, not instructions, and the saved task prompt stays your original text.",
        +  "title": "Forward"
        +}
      • addedInput schema / properties / manager_session_id
        Added value: +{
        +  "$ref": "#/$defs/ManagerSessionId",
        +  "default": null
        +}
      • addedInput schema / properties / new_thread
        Added value: +{
        +  "default": false,
        +  "description": "true always opens a fresh private thread instead of continuing this desk's most recent one; it cannot be combined with session_id or conversation_id.",
        +  "title": "New Thread",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / provider / description
        Previous value: -"CLI requested by the user, not a model ID. Providers permitted by this host configuration: antigravity, claude, codebuddy, codex, grok, pi. Excluded providers: none. start_agent rejects excluded providers; groups follow discussion member limits without host exclusions."New value: +"CLI requested by the user, not a model ID. Providers permitted by this host configuration: antigravity, claude, codebuddy, codex, deepseek, grok, pi. Excluded providers: none. start_agent rejects excluded providers; groups follow discussion member limits without host exclusions."
      • addedInput schema / properties / role
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional desk role for this CLI; 1–40 characters after trimming, no newlines or control characters. Blank or omitted means no role. The desk identity is (provider, requested model, role).",
        +  "title": "Role"
        +}
      • changedInput schema / properties / session_id / description
        Previous value: -"To continue a conversation, use the session_id returned by a finished invocation of the same provider; omit for a new conversation. Never use an invocation_id here."New value: +"To continue a specific native conversation, use the session_id returned by a finished invocation of the same provider; never use an invocation_id here. When omitted with a known manager_session_id, the task continues this desk's most recent private thread unless new_thread=true."
      • addedOutput schema / properties / access
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "title": "Access"
        +}
      • addedOutput schema / properties / message_id
        Added value: +{
        +  "title": "Message Id",
        +  "type": "string"
        +}
      • addedOutput schema / properties / resumed
        Added value: +{
        +  "title": "Resumed",
        +  "type": "boolean"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "invocation_id",
        -  "status",
        -  "reason",
        -  "elapsed_ms",
        -  "conversation_id"
        -]New value: +[
        +  "invocation_id",
        +  "status",
        +  "reason",
        +  "elapsed_ms",
        +  "conversation_id",
        +  "resumed",
        +  "access"
        +]
    • Changedwait_agent1 field changed
      • addedOutput schema / properties / message_id
        Added value: +{
        +  "title": "Message Id",
        +  "type": "string"
        +}
    • Changedwait_any1 field changed
      • addedOutput schema / $defs / InvocationPayload / properties / message_id
        Added value: +{
        +  "title": "Message Id",
        +  "type": "string"
        +}
    • Changedwait_round3 fields changed
      • addedOutput schema / $defs / CommittedEntryPayload
        Added value: +{
        +  "properties": {
        +    "kind": {
        +      "enum": [
        +        "task",
        +        "answer",
        +        "absent",
        +        "forward",
        +        "host"
        +      ],
        +      "title": "Kind",
        +      "type": "string"
        +    },
        +    "message_id": {
        +      "title": "Message Id",
        +      "type": "string"
        +    },
        +    "round": {
        +      "title": "Round",
        +      "type": "integer"
        +    },
        +    "seat": {
        +      "title": "Seat",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "message_id",
        +    "kind",
        +    "round"
        +  ],
        +  "title": "CommittedEntryPayload",
        +  "type": "object"
        +}
      • addedOutput schema / properties / entries
        Added value: +{
        +  "items": {
        +    "$ref": "#/$defs/CommittedEntryPayload"
        +  },
        +  "title": "Entries",
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "round_id",
        -  "group_id",
        -  "round",
        -  "order",
        -  "status",
        -  "reason",
        -  "elapsed_ms",
        -  "seats"
        -]New value: +[
        +  "round_id",
        +  "group_id",
        +  "round",
        +  "order",
        +  "status",
        +  "reason",
        +  "elapsed_ms",
        +  "seats",
        +  "entries"
        +]
  8. 12 tool updatesv0.23.0
    • Changedcancel_round5 fields changed
      • changedOutput schema / $defs / SeatRunPayload / properties / status / enum
        Previous value: -[
        -  "pending",
        -  "running",
        -  "succeeded",
        -  "failed",
        -  "blocked",
        -  "cancelled",
        -  "not_started"
        -]New value: +[
        +  "pending",
        +  "running",
        +  "succeeded",
        +  "failed",
        +  "blocked",
        +  "cancelled",
        +  "not_started",
        +  "pending_review",
        +  "discarded"
        +]
      • addedOutput schema / properties / dashboard_error
        Added value: +{
        +  "title": "Dashboard Error",
        +  "type": "string"
        +}
      • addedOutput schema / properties / dashboard_url
        Added value: +{
        +  "title": "Dashboard Url",
        +  "type": "string"
        +}
      • addedOutput schema / properties / director_url
        Added value: +{
        +  "title": "Director Url",
        +  "type": "string"
        +}
      • addedOutput schema / properties / public_url
        Added value: +{
        +  "title": "Public Url",
        +  "type": "string"
        +}
    • Addeddecide_answers
    • Changeddescribe_provider2 fields changed
      • addedOutput schema / properties / show_permitted
        Added value: +{
        +  "title": "Show Permitted",
        +  "type": "boolean"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "provider",
        -  "permitted",
        -  "supported_options",
        -  "host",
        -  "host_source"
        -]New value: +[
        +  "provider",
        +  "permitted",
        +  "show_permitted",
        +  "supported_options",
        +  "host",
        +  "host_source"
        +]
    • Addedlist_conversations
    • Changedlist_invocations2 fields changed
      • addedOutput schema / properties / restart_safe
        Added value: +{
        +  "title": "Restart Safe",
        +  "type": "boolean"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "invocations"
        -]New value: +[
        +  "invocations",
        +  "restart_safe"
        +]
    • Changedopen_group16 fields changed
      • addedInput schema / properties / cwd / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / cwd / default
        Added value: +null
      • changedInput schema / properties / cwd / description
        Previous value: -"Absolute existing directory seats run in by default."New value: +"Absolute existing directory seats run in; ignored when isolated."
      • removedInput schema / properties / cwd / minLength
        Removed value: -1
      • removedInput schema / properties / cwd / type
        Removed value: -"string"
      • addedInput schema / properties / isolated
        Added value: +{
        +  "default": false,
        +  "description": "Give each seat its own empty directory and restricted_tools; seat options may only set model and effort (and Pi's provider).",
        +  "title": "Isolated",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / review
        Added value: +{
        +  "default": false,
        +  "description": "Hold each successful answer until decide_answers publishes it.",
        +  "title": "Review",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / title
        Added value: +{
        +  "maxLength": 200,
        +  "minLength": 1,
        +  "title": "Title",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "cwd",
        -  "seats"
        -]New value: +[
        +  "title",
        +  "seats"
        +]
      • addedOutput schema / properties / conversation_id
        Added value: +{
        +  "title": "Conversation Id",
        +  "type": "string"
        +}
      • addedOutput schema / properties / dashboard_error
        Added value: +{
        +  "title": "Dashboard Error",
        +  "type": "string"
        +}
      • addedOutput schema / properties / dashboard_url
        Added value: +{
        +  "title": "Dashboard Url",
        +  "type": "string"
        +}
      • addedOutput schema / properties / director_url
        Added value: +{
        +  "title": "Director Url",
        +  "type": "string"
        +}
      • addedOutput schema / properties / public_url
        Added value: +{
        +  "title": "Public Url",
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "group_id",
        -  "seats"
        -]New value: +[
        +  "group_id",
        +  "conversation_id",
        +  "seats"
        +]
      • changedOutput schema / title
        Previous value: -"GroupPayload"New value: +"ShowPayload"
    • Addedpost_host_message
    • Addedread_conversation
    • Changedrun_round7 fields changed
      • addedInput schema / $defs
        Added value: +{
        +  "ManagerModel": {
        +    "anyOf": [
        +      {
        +        "maxLength": 200,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "description": "Your current manager model ID, when known from trusted host context. Metadata for this message only; never the subagent model or a CLI-derived guess. Omit when unknown. Does not change provider settings."
        +  }
        +}
      • addedInput schema / properties / manager_model
        Added value: +{
        +  "$ref": "#/$defs/ManagerModel",
        +  "default": null
        +}
      • changedOutput schema / $defs / SeatRunPayload / properties / status / enum
        Previous value: -[
        -  "pending",
        -  "running",
        -  "succeeded",
        -  "failed",
        -  "blocked",
        -  "cancelled",
        -  "not_started"
        -]New value: +[
        +  "pending",
        +  "running",
        +  "succeeded",
        +  "failed",
        +  "blocked",
        +  "cancelled",
        +  "not_started",
        +  "pending_review",
        +  "discarded"
        +]
      • addedOutput schema / properties / dashboard_error
        Added value: +{
        +  "title": "Dashboard Error",
        +  "type": "string"
        +}
      • addedOutput schema / properties / dashboard_url
        Added value: +{
        +  "title": "Dashboard Url",
        +  "type": "string"
        +}
      • addedOutput schema / properties / director_url
        Added value: +{
        +  "title": "Director Url",
        +  "type": "string"
        +}
      • addedOutput schema / properties / public_url
        Added value: +{
        +  "title": "Public Url",
        +  "type": "string"
        +}
    • Changedstart_agent11 fields changed
      • addedInput schema / $defs / ManagerModel
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Your current manager model ID, when known from trusted host context. Metadata for this message only; never the subagent model or a CLI-derived guess. Omit when unknown. Does not change provider settings."
        +}
      • addedInput schema / properties / conversation_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Task conversation to add this task to.",
        +  "title": "Conversation Id"
        +}
      • addedInput schema / properties / manager_model
        Added value: +{
        +  "$ref": "#/$defs/ManagerModel",
        +  "default": null
        +}
      • addedInput schema / properties / title
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 200,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Title for a new task conversation.",
        +  "title": "Title"
        +}
      • addedOutput schema / properties / conversation_id
        Added value: +{
        +  "title": "Conversation Id",
        +  "type": "string"
        +}
      • addedOutput schema / properties / dashboard_error
        Added value: +{
        +  "title": "Dashboard Error",
        +  "type": "string"
        +}
      • addedOutput schema / properties / dashboard_url
        Added value: +{
        +  "title": "Dashboard Url",
        +  "type": "string"
        +}
      • addedOutput schema / properties / director_url
        Added value: +{
        +  "title": "Director Url",
        +  "type": "string"
        +}
      • addedOutput schema / properties / public_url
        Added value: +{
        +  "title": "Public Url",
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "invocation_id",
        -  "status",
        -  "reason",
        -  "elapsed_ms"
        -]New value: +[
        +  "invocation_id",
        +  "status",
        +  "reason",
        +  "elapsed_ms",
        +  "conversation_id"
        +]
      • changedOutput schema / title
        Previous value: -"InvocationPayload"New value: +"TaskStartPayload"
    • Addedupdate_conversation
    • Changedwait_round5 fields changed
      • changedOutput schema / $defs / SeatRunPayload / properties / status / enum
        Previous value: -[
        -  "pending",
        -  "running",
        -  "succeeded",
        -  "failed",
        -  "blocked",
        -  "cancelled",
        -  "not_started"
        -]New value: +[
        +  "pending",
        +  "running",
        +  "succeeded",
        +  "failed",
        +  "blocked",
        +  "cancelled",
        +  "not_started",
        +  "pending_review",
        +  "discarded"
        +]
      • addedOutput schema / properties / dashboard_error
        Added value: +{
        +  "title": "Dashboard Error",
        +  "type": "string"
        +}
      • addedOutput schema / properties / dashboard_url
        Added value: +{
        +  "title": "Dashboard Url",
        +  "type": "string"
        +}
      • addedOutput schema / properties / director_url
        Added value: +{
        +  "title": "Director Url",
        +  "type": "string"
        +}
      • addedOutput schema / properties / public_url
        Added value: +{
        +  "title": "Public Url",
        +  "type": "string"
        +}
  9. 8 tool updatesv0.21.0
    • Changedcancel_agent1 field changed
      • addedOutput schema / properties / defaults_applied
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Defaults Applied",
        +  "type": "array"
        +}
    • Changeddescribe_provider5 fields changed
      • addedOutput schema / $defs / HostName
        Added value: +{
        +  "enum": [
        +    "codex",
        +    "claude",
        +    "codebuddy",
        +    "workbuddy",
        +    "grok",
        +    "antigravity",
        +    "pi",
        +    "gemini",
        +    "opencode",
        +    "hermes"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / $defs / HostSource
        Added value: +{
        +  "enum": [
        +    "env",
        +    "parent",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / host
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/HostName"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / host_source
        Added value: +{
        +  "$ref": "#/$defs/HostSource"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "provider",
        -  "permitted",
        -  "supported_options"
        -]New value: +[
        +  "provider",
        +  "permitted",
        +  "supported_options",
        +  "host",
        +  "host_source"
        +]
    • Changedlist_invocations1 field changed
      • addedOutput schema / $defs / InvocationListItem / properties / result_read
        Added value: +{
        +  "title": "Result Read",
        +  "type": "boolean"
        +}
    • Addedlist_members
    • Changedopen_group5 fields changed
      • changedInput schema / $defs / GroupSeatSpec / properties / provider_options / description
        Previous value: -"Explicit options for this seat's CLI, as for start_agent."New value: +"Options for this seat's CLI; omitted keys use discussion member defaults."
      • addedOutput schema / $defs / GroupSeatPayload / properties / defaults_applied
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Defaults Applied",
        +  "type": "array"
        +}
      • addedOutput schema / $defs / GroupSeatPayload / properties / effort
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "title": "Effort"
        +}
      • addedOutput schema / $defs / GroupSeatPayload / properties / model
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "title": "Model"
        +}
      • changedOutput schema / $defs / GroupSeatPayload / required
        Previous value: -[
        -  "id",
        -  "provider",
        -  "cwd"
        -]New value: +[
        +  "id",
        +  "provider",
        +  "cwd",
        +  "model",
        +  "effort",
        +  "defaults_applied"
        +]
    • Changedstart_agent3 fields changed
      • changedInput schema / properties / provider / description
        Previous value: -"CLI requested by the user, not a model ID. Providers permitted by this host configuration: antigravity, claude, codebuddy, codex, grok, pi. Excluded providers: none. start_agent rejects excluded providers; groups may seat any provider."New value: +"CLI requested by the user, not a model ID. Providers permitted by this host configuration: antigravity, claude, codebuddy, codex, grok, pi. Excluded providers: none. start_agent rejects excluded providers; groups follow discussion member limits without host exclusions."
      • changedInput schema / properties / provider_options / description
        Previous value: -"Explicit options for the selected CLI. Call describe_provider(provider) for supported keys. Omitted options inherit native CLI settings."New value: +"Explicit options for the selected CLI. Call describe_provider(provider) for supported keys. Omitted options use configured App defaults, then native CLI settings."
      • addedOutput schema / properties / defaults_applied
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Defaults Applied",
        +  "type": "array"
        +}
    • Changedwait_agent1 field changed
      • addedOutput schema / properties / defaults_applied
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Defaults Applied",
        +  "type": "array"
        +}
    • Changedwait_any1 field changed
      • addedOutput schema / $defs / InvocationPayload / properties / defaults_applied
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "title": "Defaults Applied",
        +  "type": "array"
        +}
  10. 2 tool updatesv0.17.0
    • Addedlist_invocations
    • Addedwait_any
  11. 8 tool updatesv0.16.1
    • Changedcancel_agent3 fields changed
      • addedOutput schema / properties / effort
        Added value: +{
        +  "title": "Effort",
        +  "type": "string"
        +}
      • addedOutput schema / properties / model
        Added value: +{
        +  "title": "Model",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provider
        Added value: +{
        +  "title": "Provider",
        +  "type": "string"
        +}
    • Addedcancel_round
    • Changeddescribe_provider2 fields changed
      • changedInput schema / $defs / ProviderName / enum
        Previous value: -[
        -  "antigravity",
        -  "claude",
        -  "codebuddy",
        -  "codex",
        -  "grok"
        -]New value: +[
        +  "antigravity",
        +  "claude",
        +  "codebuddy",
        +  "codex",
        +  "grok",
        +  "pi"
        +]
      • changedOutput schema / $defs / ProviderName / enum
        Previous value: -[
        -  "antigravity",
        -  "claude",
        -  "codebuddy",
        -  "codex",
        -  "grok"
        -]New value: +[
        +  "antigravity",
        +  "claude",
        +  "codebuddy",
        +  "codex",
        +  "grok",
        +  "pi"
        +]
    • Addedopen_group
    • Addedrun_round
    • Changedstart_agent5 fields changed
      • changedInput schema / $defs / ProviderName / enum
        Previous value: -[
        -  "antigravity",
        -  "claude",
        -  "codebuddy",
        -  "codex",
        -  "grok"
        -]New value: +[
        +  "antigravity",
        +  "claude",
        +  "codebuddy",
        +  "codex",
        +  "grok",
        +  "pi"
        +]
      • changedInput schema / properties / provider / description
        Previous value: -"CLI requested by the user, not a model ID. Providers permitted by this host configuration: antigravity, claude, codebuddy, codex, grok. Excluded providers: none. Excluded providers are rejected before launch."New value: +"CLI requested by the user, not a model ID. Providers permitted by this host configuration: antigravity, claude, codebuddy, codex, grok, pi. Excluded providers: none. start_agent rejects excluded providers; groups may seat any provider."
      • addedOutput schema / properties / effort
        Added value: +{
        +  "title": "Effort",
        +  "type": "string"
        +}
      • addedOutput schema / properties / model
        Added value: +{
        +  "title": "Model",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provider
        Added value: +{
        +  "title": "Provider",
        +  "type": "string"
        +}
    • Changedwait_agent3 fields changed
      • addedOutput schema / properties / effort
        Added value: +{
        +  "title": "Effort",
        +  "type": "string"
        +}
      • addedOutput schema / properties / model
        Added value: +{
        +  "title": "Model",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provider
        Added value: +{
        +  "title": "Provider",
        +  "type": "string"
        +}
    • Addedwait_round
  12. 3 tool updatesv0.9.0
    • Changedcancel_agent1 field changed
      • changedOutput schema / properties / status / enum
        Previous value: -[
        -  "running",
        -  "succeeded",
        -  "failed",
        -  "blocked",
        -  "cancelled",
        -  "timed_out"
        -]New value: +[
        +  "running",
        +  "succeeded",
        +  "failed",
        +  "blocked",
        +  "cancelled"
        +]
    • Changedstart_agent2 fields changed
      • removedInput schema / properties / timeout_seconds
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "exclusiveMinimum": 0,
        -      "maximum": 86400,
        -      "type": "number"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Optional total runtime limit in seconds; expiry stops the invocation. Omit or null for no AgentNave deadline; native CLI limits still apply.",
        -  "title": "Timeout Seconds"
        -}
      • changedOutput schema / properties / status / enum
        Previous value: -[
        -  "running",
        -  "succeeded",
        -  "failed",
        -  "blocked",
        -  "cancelled",
        -  "timed_out"
        -]New value: +[
        +  "running",
        +  "succeeded",
        +  "failed",
        +  "blocked",
        +  "cancelled"
        +]
    • Changedwait_agent2 fields changed
      • removedInput schema / properties / wait_timeout_seconds
        Removed value: -{
        -  "default": 600,
        -  "description": "Seconds to wait for this response; expiry leaves the invocation running.",
        -  "exclusiveMinimum": 0,
        -  "maximum": 600,
        -  "title": "Wait Timeout Seconds",
        -  "type": "number"
        -}
      • changedOutput schema / properties / status / enum
        Previous value: -[
        -  "running",
        -  "succeeded",
        -  "failed",
        -  "blocked",
        -  "cancelled",
        -  "timed_out"
        -]New value: +[
        +  "running",
        +  "succeeded",
        +  "failed",
        +  "blocked",
        +  "cancelled"
        +]
  13. 4 tool updatesv0.7.0
    • Changedcancel_agent19 fields changed
      • addedOutput schema / $defs / ActivityPayload
        Added value: +{
        +  "properties": {
        +    "age_ms": {
        +      "title": "Age Ms",
        +      "type": "integer"
        +    },
        +    "kind": {
        +      "title": "Kind",
        +      "type": "string"
        +    },
        +    "state": {
        +      "title": "State",
        +      "type": "string"
        +    },
        +    "tool_name": {
        +      "title": "Tool Name",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "kind"
        +  ],
        +  "title": "ActivityPayload",
        +  "type": "object"
        +}
      • removedOutput schema / $defs / InvocationErrorPayload / properties / details
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "title": "Details"
        -}
      • changedOutput schema / $defs / InvocationErrorPayload / required
        Previous value: -[
        -  "code",
        -  "message",
        -  "details"
        -]New value: +[
        +  "code",
        +  "message"
        +]
      • removedOutput schema / $defs / InvocationResultPayload
        Removed value: -{
        -  "properties": {
        -    "duration_ms": {
        -      "title": "Duration Ms",
        -      "type": "integer"
        -    },
        -    "error": {
        -      "anyOf": [
        -        {
        -          "$ref": "#/$defs/InvocationErrorPayload"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "output": {
        -      "title": "Output",
        -      "type": "string"
        -    },
        -    "provider": {
        -      "$ref": "#/$defs/ProviderName"
        -    },
        -    "provider_usage": {
        -      "$ref": "#/$defs/ProviderUsagePayload"
        -    },
        -    "session_id": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "title": "Session Id"
        -    },
        -    "status": {
        -      "$ref": "#/$defs/InvocationStatusName"
        -    }
        -  },
        -  "required": [
        -    "status",
        -    "provider",
        -    "output",
        -    "session_id",
        -    "provider_usage",
        -    "duration_ms",
        -    "error"
        -  ],
        -  "title": "InvocationResultPayload",
        -  "type": "object"
        -}
      • removedOutput schema / $defs / InvocationStatusName
        Removed value: -{
        -  "enum": [
        -    "succeeded",
        -    "failed",
        -    "blocked",
        -    "cancelled",
        -    "timed_out"
        -  ],
        -  "type": "string"
        -}
      • removedOutput schema / $defs / ProviderName
        Removed value: -{
        -  "enum": [
        -    "antigravity",
        -    "claude",
        -    "codebuddy",
        -    "codex",
        -    "grok"
        -  ],
        -  "type": "string"
        -}
      • removedOutput schema / $defs / ProviderUsagePayload
        Removed value: -{
        -  "properties": {
        -    "num_turns": {
        -      "title": "Num Turns",
        -      "type": "integer"
        -    },
        -    "total_cost_usd": {
        -      "title": "Total Cost Usd",
        -      "type": "number"
        -    }
        -  },
        -  "title": "ProviderUsagePayload",
        -  "type": "object"
        -}
      • addedOutput schema / properties / activity
        Added value: +{
        +  "$ref": "#/$defs/ActivityPayload"
        +}
      • addedOutput schema / properties / elapsed_ms
        Added value: +{
        +  "title": "Elapsed Ms",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / error
        Added value: +{
        +  "$ref": "#/$defs/InvocationErrorPayload"
        +}
      • addedOutput schema / properties / output
        Added value: +{
        +  "title": "Output",
        +  "type": "string"
        +}
      • addedOutput schema / properties / output_age_ms
        Added value: +{
        +  "title": "Output Age Ms",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / reason
        Added value: +{
        +  "enum": [
        +    "started",
        +    "wait_elapsed",
        +    "execution_blocked",
        +    "finished"
        +  ],
        +  "title": "Reason",
        +  "type": "string"
        +}
      • removedOutput schema / properties / result
        Removed value: -{
        -  "$ref": "#/$defs/InvocationResultPayload"
        -}
      • addedOutput schema / properties / session_id
        Added value: +{
        +  "title": "Session Id",
        +  "type": "string"
        +}
      • removedOutput schema / properties / state
        Removed value: -{
        -  "const": "finished",
        -  "title": "State",
        -  "type": "string"
        -}
      • addedOutput schema / properties / status
        Added value: +{
        +  "enum": [
        +    "running",
        +    "succeeded",
        +    "failed",
        +    "blocked",
        +    "cancelled",
        +    "timed_out"
        +  ],
        +  "title": "Status",
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "invocation_id",
        -  "state",
        -  "result"
        -]New value: +[
        +  "invocation_id",
        +  "status",
        +  "reason",
        +  "elapsed_ms"
        +]
      • changedOutput schema / title
        Previous value: -"CancelAgentPayload"New value: +"InvocationPayload"
    • Changeddescribe_provider4 fields changed
      • changedInput schema / properties / provider / description
        Previous value: -"Provider to describe before using start_agent."New value: +"Provider whose permitted status and options to return."
      • removedOutput schema / properties / defaults
        Removed value: -{
        -  "additionalProperties": {
        -    "type": "string"
        -  },
        -  "title": "Defaults",
        -  "type": "object"
        -}
      • removedOutput schema / properties / guidance
        Removed value: -{
        -  "title": "Guidance",
        -  "type": "string"
        -}
      • changedOutput schema / required
        Previous value: -[
        -  "provider",
        -  "permitted",
        -  "defaults",
        -  "supported_options",
        -  "guidance"
        -]New value: +[
        +  "provider",
        +  "permitted",
        +  "supported_options"
        +]
    • Changedstart_agent20 fields changed
      • changedInput schema / properties / provider / description
        Previous value: -"CLI requested by the user, not a model ID. Providers permitted by this host configuration: antigravity, claude, codebuddy, codex, grok. Excluded providers: none. Exclusions are enforced before an invocation is created. Choose an installed, authenticated permitted CLI; if none is available, report the blocker instead of falling back to an excluded provider."New value: +"CLI requested by the user, not a model ID. Providers permitted by this host configuration: antigravity, claude, codebuddy, codex, grok. Excluded providers: none. Excluded providers are rejected before launch."
      • changedInput schema / properties / provider_options / description
        Previous value: -"Explicit options for the selected CLI. Call describe_provider(provider) for supported keys and model/effort defaults; user choices override those defaults."New value: +"Explicit options for the selected CLI. Call describe_provider(provider) for supported keys. Omitted options inherit native CLI settings."
      • addedInput schema / properties / timeout_seconds / anyOf
        Added value: +[
        +  {
        +    "exclusiveMinimum": 0,
        +    "maximum": 86400,
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / timeout_seconds / default
        Previous value: -1800New value: +null
      • changedInput schema / properties / timeout_seconds / description
        Previous value: -"Total runtime limit in seconds; expiry stops the invocation."New value: +"Optional total runtime limit in seconds; expiry stops the invocation. Omit or null for no AgentNave deadline; native CLI limits still apply."
      • removedInput schema / properties / timeout_seconds / exclusiveMinimum
        Removed value: -0
      • removedInput schema / properties / timeout_seconds / maximum
        Removed value: -86400
      • removedInput schema / properties / timeout_seconds / type
        Removed value: -"number"
      • addedOutput schema / $defs
        Added value: +{
        +  "ActivityPayload": {
        +    "properties": {
        +      "age_ms": {
        +        "title": "Age Ms",
        +        "type": "integer"
        +      },
        +      "kind": {
        +        "title": "Kind",
        +        "type": "string"
        +      },
        +      "state": {
        +        "title": "State",
        +        "type": "string"
        +      },
        +      "tool_name": {
        +        "title": "Tool Name",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "kind"
        +    ],
        +    "title": "ActivityPayload",
        +    "type": "object"
        +  },
        +  "InvocationErrorPayload": {
        +    "properties": {
        +      "code": {
        +        "title": "Code",
        +        "type": "string"
        +      },
        +      "message": {
        +        "title": "Message",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "code",
        +      "message"
        +    ],
        +    "title": "InvocationErrorPayload",
        +    "type": "object"
        +  }
        +}
      • addedOutput schema / properties / activity
        Added value: +{
        +  "$ref": "#/$defs/ActivityPayload"
        +}
      • addedOutput schema / properties / elapsed_ms
        Added value: +{
        +  "title": "Elapsed Ms",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / error
        Added value: +{
        +  "$ref": "#/$defs/InvocationErrorPayload"
        +}
      • addedOutput schema / properties / output
        Added value: +{
        +  "title": "Output",
        +  "type": "string"
        +}
      • addedOutput schema / properties / output_age_ms
        Added value: +{
        +  "title": "Output Age Ms",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / reason
        Added value: +{
        +  "enum": [
        +    "started",
        +    "wait_elapsed",
        +    "execution_blocked",
        +    "finished"
        +  ],
        +  "title": "Reason",
        +  "type": "string"
        +}
      • addedOutput schema / properties / session_id
        Added value: +{
        +  "title": "Session Id",
        +  "type": "string"
        +}
      • removedOutput schema / properties / state
        Removed value: -{
        -  "const": "running",
        -  "title": "State",
        -  "type": "string"
        -}
      • addedOutput schema / properties / status
        Added value: +{
        +  "enum": [
        +    "running",
        +    "succeeded",
        +    "failed",
        +    "blocked",
        +    "cancelled",
        +    "timed_out"
        +  ],
        +  "title": "Status",
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "invocation_id",
        -  "state"
        -]New value: +[
        +  "invocation_id",
        +  "status",
        +  "reason",
        +  "elapsed_ms"
        +]
      • changedOutput schema / title
        Previous value: -"StartAgentPayload"New value: +"InvocationPayload"
    • Changedwait_agent24 fields changed
      • changedInput schema / properties / wait_timeout_seconds / default
        Previous value: -30New value: +600
      • changedInput schema / properties / wait_timeout_seconds / maximum
        Previous value: -300New value: +600
      • addedOutput schema / $defs / ActivityPayload
        Added value: +{
        +  "properties": {
        +    "age_ms": {
        +      "title": "Age Ms",
        +      "type": "integer"
        +    },
        +    "kind": {
        +      "title": "Kind",
        +      "type": "string"
        +    },
        +    "state": {
        +      "title": "State",
        +      "type": "string"
        +    },
        +    "tool_name": {
        +      "title": "Tool Name",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "kind"
        +  ],
        +  "title": "ActivityPayload",
        +  "type": "object"
        +}
      • removedOutput schema / $defs / InvocationErrorPayload / properties / details
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "title": "Details"
        -}
      • changedOutput schema / $defs / InvocationErrorPayload / required
        Previous value: -[
        -  "code",
        -  "message",
        -  "details"
        -]New value: +[
        +  "code",
        +  "message"
        +]
      • removedOutput schema / $defs / InvocationPhaseName
        Removed value: -{
        -  "enum": [
        -    "preparing",
        -    "running",
        -    "stopping"
        -  ],
        -  "type": "string"
        -}
      • removedOutput schema / $defs / InvocationResultPayload
        Removed value: -{
        -  "properties": {
        -    "duration_ms": {
        -      "title": "Duration Ms",
        -      "type": "integer"
        -    },
        -    "error": {
        -      "anyOf": [
        -        {
        -          "$ref": "#/$defs/InvocationErrorPayload"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "output": {
        -      "title": "Output",
        -      "type": "string"
        -    },
        -    "provider": {
        -      "$ref": "#/$defs/ProviderName"
        -    },
        -    "provider_usage": {
        -      "$ref": "#/$defs/ProviderUsagePayload"
        -    },
        -    "session_id": {
        -      "anyOf": [
        -        {
        -          "type": "string"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "title": "Session Id"
        -    },
        -    "status": {
        -      "$ref": "#/$defs/InvocationStatusName"
        -    }
        -  },
        -  "required": [
        -    "status",
        -    "provider",
        -    "output",
        -    "session_id",
        -    "provider_usage",
        -    "duration_ms",
        -    "error"
        -  ],
        -  "title": "InvocationResultPayload",
        -  "type": "object"
        -}
      • removedOutput schema / $defs / InvocationSnapshotPayload
        Removed value: -{
        -  "properties": {
        -    "elapsed_ms": {
        -      "title": "Elapsed Ms",
        -      "type": "integer"
        -    },
        -    "last_event_age_ms": {
        -      "anyOf": [
        -        {
        -          "type": "integer"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ],
        -      "title": "Last Event Age Ms"
        -    },
        -    "phase": {
        -      "$ref": "#/$defs/InvocationPhaseName"
        -    }
        -  },
        -  "required": [
        -    "phase",
        -    "elapsed_ms",
        -    "last_event_age_ms"
        -  ],
        -  "title": "InvocationSnapshotPayload",
        -  "type": "object"
        -}
      • removedOutput schema / $defs / InvocationStatusName
        Removed value: -{
        -  "enum": [
        -    "succeeded",
        -    "failed",
        -    "blocked",
        -    "cancelled",
        -    "timed_out"
        -  ],
        -  "type": "string"
        -}
      • removedOutput schema / $defs / ProviderName
        Removed value: -{
        -  "enum": [
        -    "antigravity",
        -    "claude",
        -    "codebuddy",
        -    "codex",
        -    "grok"
        -  ],
        -  "type": "string"
        -}
      • removedOutput schema / $defs / ProviderUsagePayload
        Removed value: -{
        -  "properties": {
        -    "num_turns": {
        -      "title": "Num Turns",
        -      "type": "integer"
        -    },
        -    "total_cost_usd": {
        -      "title": "Total Cost Usd",
        -      "type": "number"
        -    }
        -  },
        -  "title": "ProviderUsagePayload",
        -  "type": "object"
        -}
      • addedOutput schema / properties / activity
        Added value: +{
        +  "$ref": "#/$defs/ActivityPayload"
        +}
      • addedOutput schema / properties / elapsed_ms
        Added value: +{
        +  "title": "Elapsed Ms",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / error
        Added value: +{
        +  "$ref": "#/$defs/InvocationErrorPayload"
        +}
      • addedOutput schema / properties / output
        Added value: +{
        +  "title": "Output",
        +  "type": "string"
        +}
      • addedOutput schema / properties / output_age_ms
        Added value: +{
        +  "title": "Output Age Ms",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / reason
        Added value: +{
        +  "enum": [
        +    "started",
        +    "wait_elapsed",
        +    "execution_blocked",
        +    "finished"
        +  ],
        +  "title": "Reason",
        +  "type": "string"
        +}
      • removedOutput schema / properties / result
        Removed value: -{
        -  "$ref": "#/$defs/InvocationResultPayload"
        -}
      • addedOutput schema / properties / session_id
        Added value: +{
        +  "title": "Session Id",
        +  "type": "string"
        +}
      • removedOutput schema / properties / snapshot
        Removed value: -{
        -  "$ref": "#/$defs/InvocationSnapshotPayload"
        -}
      • removedOutput schema / properties / state
        Removed value: -{
        -  "enum": [
        -    "running",
        -    "finished"
        -  ],
        -  "title": "State",
        -  "type": "string"
        -}
      • addedOutput schema / properties / status
        Added value: +{
        +  "enum": [
        +    "running",
        +    "succeeded",
        +    "failed",
        +    "blocked",
        +    "cancelled",
        +    "timed_out"
        +  ],
        +  "title": "Status",
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "invocation_id",
        -  "state"
        -]New value: +[
        +  "invocation_id",
        +  "status",
        +  "reason",
        +  "elapsed_ms"
        +]
      • changedOutput schema / title
        Previous value: -"WaitAgentPayload"New value: +"InvocationPayload"
  14. 3 tool updatesv0.5.0
    • Addeddescribe_provider
    • Changedstart_agent5 fields changed
      • changedInput schema / properties / prompt / description
        Previous value: -"Complete, self-contained task for the subagent."New value: +"Complete task, context, constraints, and expected output; the CLI does not inherit this conversation."
      • changedInput schema / properties / provider / description
        Previous value: -"Local subagent provider to launch."New value: +"CLI requested by the user, not a model ID. Providers permitted by this host configuration: antigravity, claude, codebuddy, codex, grok. Excluded providers: none. Exclusions are enforced before an invocation is created. Choose an installed, authenticated permitted CLI; if none is available, report the blocker instead of falling back to an excluded provider."
      • changedInput schema / properties / provider_options / description
        Previous value: -"Explicit provider-native options. Omit to inherit the provider's own settings; supported keys depend on the selected provider."New value: +"Explicit options for the selected CLI. Call describe_provider(provider) for supported keys and model/effort defaults; user choices override those defaults."
      • changedInput schema / properties / session_id / description
        Previous value: -"Provider session ID returned by an earlier finished invocation."New value: +"To continue a conversation, use the session_id returned by a finished invocation of the same provider; omit for a new conversation. Never use an invocation_id here."
      • changedInput schema / properties / timeout_seconds / description
        Previous value: -"Maximum provider runtime in seconds."New value: +"Total runtime limit in seconds; expiry stops the invocation."
    • Changedwait_agent1 field changed
      • changedInput schema / properties / wait_timeout_seconds / description
        Previous value: -"Maximum time to wait during this call, in seconds."New value: +"Seconds to wait for this response; expiry leaves the invocation running."
  15. 3 tool updatesv0.3.0
    • Changedcancel_agent1 field changed
      • changedOutput schema / $defs / ProviderName / enum
        Previous value: -[
        -  "antigravity",
        -  "claude",
        -  "codebuddy",
        -  "grok"
        -]New value: +[
        +  "antigravity",
        +  "claude",
        +  "codebuddy",
        +  "codex",
        +  "grok"
        +]
    • Changedstart_agent1 field changed
      • changedInput schema / $defs / ProviderName / enum
        Previous value: -[
        -  "antigravity",
        -  "claude",
        -  "codebuddy",
        -  "grok"
        -]New value: +[
        +  "antigravity",
        +  "claude",
        +  "codebuddy",
        +  "codex",
        +  "grok"
        +]
    • Changedwait_agent1 field changed
      • changedOutput schema / $defs / ProviderName / enum
        Previous value: -[
        -  "antigravity",
        -  "claude",
        -  "codebuddy",
        -  "grok"
        -]New value: +[
        +  "antigravity",
        +  "claude",
        +  "codebuddy",
        +  "codex",
        +  "grok"
        +]
  16. 3 tool updatesv0.2.0
    • First observedcancel_agent
    • First observedstart_agent
    • First observedwait_agent

TDQS

A3.5/5.0

Scored across 9 tools

Disambiguation4/5

The tools mostly target distinct orchestration objects and actions: start_agent for CLI tasks, run_round for meetings, decide_answers for held answers, and handover for workspace transfer. Some overlap exists among list, list_members, and read_conversation, and wait spans multiple handle types, but the descriptions provide enough differentiation.

Naming Consistency3/5

Most compound names follow imperative snake_case verb_noun patterns such as start_agent, list_members, run_round, decide_answers, and read_conversation. However, bare verbs wait/cancel/list and the noun-style handover break the predictable pattern, making it mixed but still readable.

Tool Count5/5

The server exposes 9 tools, which is well within a reasonable range for an orchestration service. Each tool appears to earn its place by covering a distinct lifecycle or control operation, with no obvious redundant tools.

Completeness4/5

The surface covers task start/wait/cancel/list/read, meeting round creation/continuation, answer decisions, member inspection, and handover. Minor gaps exist, such as no explicit member configuration/update tool and no messaging to active tasks, but some of these appear intentionally out of scope.

Maintenance

ActivityActive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables MCP clients to spawn and control Codex CLI and Claude Code sessions on the host machine, with session management and filesystem access.
    4
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables ISLI agents and MCP clients to dispatch natural-language coding and terminal tasks to a locally-installed Claude Code CLI, supporting both one-shot execution and persistent sessions with workspace and security controls.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables any MCP client to launch and manage subagent sessions in installed coding agents like Codex, Claude Code, Grok, and OpenCode, using your existing logins and chosen models.
    10 npm
    MIT