Repository navigation
Declare MCP tool annotations and document unattended Codex approvals - #119
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Unattended Codex runs can reject Seyk tool calls when approval is unavailable. Declare explicit tool annotations and document server-scoped
default_tools_approval_mode = "approve", including the per-run-coverride.searchandextractadvertisereadOnlyHint=false: search can index inline and update/prune its derived local cache; extraction can lazily initialize the engine, open the cache, and start its scrubber.index_statusonly observes existing state and never initializes the engine or indexes inline, so it advertises true. Independent watchers can still write while status is read. All three advertisedestructiveHint=false,idempotentHint=true, andopenWorldHint=false. Seyk only adds/prunes its own derived, rebuildable cache and never modifies or deletes user files. Repetition converges for unchanged sources/model/configuration; results can change as indexing progresses.Checked the camelCase wire names against the MCP 2026-07-28 schema and the locked rmcp 3.5.1
ToolAnnotationsserialization/macro fields. Codex documents thatwritesprompts for tools that are not read-only: it auto-approves status but still prompts for search/extract even withdestructiveHint=false.approvesupports unattended use when the binary and configured roots are trusted.Validation:
cargo fmt --all --checkcargo clippy --locked --bin seyk --test cli -- -D warningscargo test --locked --test cli mcp_server_lists_search_tool_without_loading_the_model -- --exact: passed; asserts all four wire annotations for all three tools throughtools/list.codex execwith default noninteractive approval policy and the documented server approval override successfully called lexical search over an invented note. Returned the correct three-attempt policy,degraded.reason=no_model, andsegments_embedded=0. Explicit empty model directory; no model downloads or loads.git commit -S; verified itsgpgsigheader before pushing.Resolves Solo todo #5218