Repository navigation
Conversation
An unknown key was reported as a Note below the scope line, suggested only start_time for time_range, and never said the result ignored it. Ignored keys are now a Warning directly under the title that says the result is for the call without the key, and a window key points at both start_time/end_time.
Maple review🔴 Confidence 4/10 · risky as written Moves ignored-argument reports from
Findings🔴 Critical · F1 ·
|
| Issue | Service | Occurrences | File |
|---|---|---|---|
| @maple/api/vcs/VcsSourceRepositoryNotFoundError | maple-ai | 68 | apps/ai/src/mcp/tools/registry.ts |
| @maple/mcp/errors/McpQueryError | maple-chat | 42 | apps/ai/src/mcp/tools/registry.ts |
| @maple/mcp/errors/McpQueryError | maple-chat | 36 | apps/ai/src/mcp/tools/registry.ts |
| @maple/mcp/errors/McpQueryError | maple-ai | 18 | apps/ai/src/mcp/tools/registry.ts |
| @maple/api/vcs/GithubAppError | maple-chat | 14 | apps/ai/src/mcp/tools/registry.ts |
| @maple/http/errors/IntegrationsUpstreamError | maple-chat | 14 | apps/ai/src/mcp/tools/registry.ts |
| @maple/http/errors/IntegrationsUpstreamError | maple-chat | 11 | apps/ai/src/mcp/tools/registry.ts |
| @maple/mcp/errors/McpQueryError | maple-ai | 9 | apps/ai/src/mcp/tools/registry.ts |
| @maple/mcp/errors/McpQueryError | maple-ai | 9 | apps/ai/src/mcp/tools/registry.ts |
| @maple/mcp/errors/McpQueryError | maple-chat | 8 | apps/ai/src/mcp/tools/registry.ts |
After this merges, Maple checks whether they stop.
What was checked
- Window suggestion is gated on the tool actually declaring both bounds (
decode-issues.ts:101) - Single-bound keys still fall back to
suggestParameter(decode-issues.ts:104) - No other consumer of
NormalizedArguments.unknownreads the oldsuggestionfield
162a1d9 · Updated on every push. Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to Ignored arguments are surfaced with parameter suggestions. The identified local-review import issue is fixed, and no actionable merge-blocking risk remains in the supplied evidence. Pre-merge checks |
|
Maple review🔴 Confidence 4/10 · risky as written Moves the ignored-argument report out of
Findings🟠 Warning · F2 ·
|
| Issue | Service | Occurrences | File |
|---|---|---|---|
| @maple/api/vcs/VcsSourceRepositoryNotFoundError | maple-ai | 68 | apps/ai/src/mcp/tools/registry.ts |
| @maple/mcp/errors/McpQueryError | maple-chat | 42 | apps/ai/src/mcp/tools/registry.ts |
| @maple/mcp/errors/McpQueryError | maple-chat | 36 | apps/ai/src/mcp/tools/registry.ts |
| @maple/mcp/errors/McpQueryError | maple-ai | 18 | apps/ai/src/mcp/tools/registry.ts |
| @maple/api/vcs/GithubAppError | maple-chat | 14 | apps/ai/src/mcp/tools/registry.ts |
| @maple/http/errors/IntegrationsUpstreamError | maple-chat | 14 | apps/ai/src/mcp/tools/registry.ts |
| @maple/http/errors/IntegrationsUpstreamError | maple-chat | 11 | apps/ai/src/mcp/tools/registry.ts |
| @maple/mcp/errors/McpQueryError | maple-ai | 9 | apps/ai/src/mcp/tools/registry.ts |
| @maple/mcp/errors/McpQueryError | maple-ai | 9 | apps/ai/src/mcp/tools/registry.ts |
| @maple/mcp/errors/McpQueryError | maple-chat | 8 | apps/ai/src/mcp/tools/registry.ts |
After this merges, Maple checks whether they stop.
What was checked
pr-review-local.ts:61,769now imports and callsargumentWarnings; F1's missing export is gone at this head- No other importer of
argumentNoticesor reader ofunknown[].suggestionremains (evals/targets.tsreads only.length,registry.ts:486,590only.key) formatDecodeFailurekeeps its old single-suggestion output forcmd/command(decode-issues.test.ts:55)
3459837 · Updated on every push. Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.
Maple review🟢 Confidence 9/10 · safe to merge Ignored-argument reports move from
Fixed since the last review
Production impactOpen errors in the changed files
After this merges, Maple checks whether they stop. What was checked
|
Problem
An agent called
list_serviceswith{"time_range":"today"}. The tool takesstart_time/end_time(default 6 hours), so the key was dropped and the default window ran. The registry did report it, but the report was easy to miss and half-wrong:Note:alongside informational notes (clamped windows).time_rangenames a whole window, but the edit-distance match suggested onlystart_time.Change
ToolDocgainswarnings, rendered directly under the title asWarning:lines. The registry puts ignored-argument reports there for every tool;noticesstays for informational notes.time_range,lookback,period,since, ...) on a tool that takes both bounds suggestsstart_time/end_time. A single-bound key (start) still suggests the one bound. The decode-failure message uses the same suggestions.Now:
Not done: a
time_rangealias onP.timeWindowAliases rename a key and keep the value, so
time_range: "today"would land instart_timeand fail to decode as a timestamp.time_rangewas never a parameter name for these tools, so it is not a retired name. It already means something else oncreate_dashboard(the dashboard's saved relative range). Accepting relative windows would be a new parameter, not an alias, so it does not fit "one spelling per concept".Tests
decode-issues.test.ts: window keys suggest both bounds, single bounds stay single, no window suggestion on tools without one, warning text.tool-doc.test.ts: warnings render before scope, notices after.tool-contract.test.ts:list_serviceswithtime_rangesucceeds and the warning is the first thing under the title.Ran those three plus
registry.contract.test.tsand@maple/aitypecheck. The full suite and repo-wide typecheck were not run.🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by CodeRabbit