Skip to content

v1.6.2 - #699

Closed
dwash96 wants to merge 46 commits into
mainfrom
v1.6.2
Closed

v1.6.2#699
dwash96 wants to merge 46 commits into
mainfrom
v1.6.2

Conversation

@dwash96

@dwash96 dwash96 commented Sep 26, 2026 •

Copy link
Copy Markdown
Collaborator

chrisnestrud and others added 13 commits September 23, 2026 13:16
Providers enforce the OpenAI function-name pattern
^(?:[A-Za-z0-9_-]{1,64})$ on tools[].function.name, so an MCP server that
advertises a dotted name (browser.fetch) makes every request fail with
"Invalid 'tools[1].function.name': string does not match pattern" even though
the server itself is healthy.

Sanitize the prefixed name when the tool list is built, compare sanitized names
when matching an incoming call to its server, and map the sanitized name back to
the name the server advertises before tools/call. Sanitization is idempotent, so
a caller that already holds the original name is unaffected.
Revert the beads/dolt entries the PR added to .gitignore so the merge
touches code only.

Replace the per-call scan in responses.original_tool_name() with
module-level dicts that cache the original/sanitized MCP tool name
pairs. register_tool_names() fills them from coder.mcp_tools inside
get_tool_list(), so dispatching a tool call is now a dict lookup
instead of iterating every advertised tool. sanitize_tool_name() also
reuses its cache.
Your Name and others added 18 commits October 1, 2026 14:24
CLI-66: Add retry-on-forbidden opt-in for 403 PermissionDeniedError
Consolidate the try/except os.path.relpath(ValueError) pattern introduced
by PR #704 into a single cecli.utils.safe_relpath helper. The CompletionBar
private _safe_relpath helper is replaced by the shared utility.

requirements.txt and common-constraints.txt remain unchanged from v1.6.2.
Resolve conflict with existing retry_on_forbidden support by keeping both
opt-in retry flags.

Follow-up changes on top of the merge:
- Revert requirements.txt and requirements/common-constraints.txt.
- Add models.parse_model_error(retry_config, error) and use it from
  cecli/models.py and cecli/coders/base_coder.py to remove duplicated
  retry-decision logic.
- Fix 403 retry test to configure retries instead of setting the derived
  attribute directly.
@dwash96 dwash96 closed this Oct 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants