fix(mcp): align issue enums with API#648
Conversation
Co-Authored-By: Paperclip <noreply@paperclip.ing>
|
🔗 Paperclip issue: BLO-15010 |
1 similar comment
|
🔗 Paperclip issue: BLO-15010 |
|
@ally Please review the external MCP enum boundary, especially whether the canonical status/priority sets fully match the REST validators and whether the parameterized tests cover the real forwarding failure mode. |
|
Hey @allyblockcast[bot]! Before this PR can be reviewed, a few things need attention: Missing or incomplete:
Once updated, push a new commit and these checks will re-run automatically. — commitperclip |
allyblockcast
left a comment
There was a problem hiding this comment.
Ally — Consolidated PR Review
Lenses: pr-review-toolkit (code, tests, comments, errors, types) + gstack/review + native-codex.
Looks good
Verified the new ISSUE_STATUSES/ISSUE_PRIORITIES sets against the canonical server-side enums in packages/shared/src/constants.ts (ISSUE_STATUSES = [backlog, todo, in_progress, in_review, done, blocked, cancelled], ISSUE_PRIORITIES = [critical, high, medium, low]) — the MCP boundary now matches exactly. Checked for stragglers: no remaining urgent references in tools.ts/tools.test.ts/README, and create_issue's priority description was updated too even though it isn't itself validated against the set (pre-existing behavior, unchanged by this diff). New it.each cases cover forwarding for every canonical status and priority, and the existing invalid-value tests ("bogus") are unaffected by the set change. No SQL/LLM-trust-boundary or side-effect concerns — this is pure schema/enum/string alignment with no new I/O paths.
Suggestions (0)
None.
Note (non-blocking for this review, but blocks merge)
The review CI check is failing — not from this diff's code, but from the repo's PR-description quality gate: the PR body is missing required sections (## Thinking Path, ## What Changed, ## Verification, ## Risks, ## Model Used), a linked issue reference, and the dedup-search checkbox. Worth fixing the PR description before merge; not a code-quality finding.
reviewed head: 1c85997
|
Hey @allyblockcast[bot]! Before this PR can be reviewed, a few things need attention: Missing or incomplete:
Once updated, push a new commit and these checks will re-run automatically. — commitperclip |
Thinking Path
Linked Issues or Issue Description
Refs: BLO-15010
What happened?
update_issue(priority="urgent")passed MCP validation but the REST API rejected it, whileupdate_issue(priority="critical")was rejected by MCP before reaching REST. MCP also omitted the canonicalbacklogandin_reviewstatuses.Expected behavior
Every issue status and priority accepted by the REST API is accepted and forwarded by the external MCP tool.
Steps to reproduce
update_issuewithpriority: "urgent"; REST returns 400 expectingcritical.priority: "critical"; MCP validation rejects it expectingurgent.Paperclip version or commit
Base
c6145736c9006e85a040dc3521750263f36b60d3.Deployment mode
Self-hosted server with the external MCP package.
Installation method
Built from source.
Agent adapter(s) involved
Not adapter-specific; this is an external MCP boundary bug.
Database mode
Not database-related.
Access context
Agent bearer API credentials through MCP.
Privacy checklist
What Changed
urgentpriority with canonicalcritical.backlogandin_reviewstatuses to the MCP boundary.Verification
pnpm --filter @paperclipai/mcp-external test-> 109 tests passed.pnpm --filter @paperclipai/mcp-external typecheck-> passed.1c859978543b7e6b5994f8951a446b67898b8005: build, typecheck, e2e, server/workspace suites, canary, security, policy, and verify checks passed.Risks
urgentis rejected in favor of the server existing canonicalcriticalvalue.Model Used
OpenAI GPT-5.6-sol (
openai/gpt-5.6-sol) via OpenCode/Paperclip, with tool use and code execution. The implementation and review used repository, GitHub, and test tooling; no hidden runtime translation was introduced.Checklist
Fixes: #/Closes #/Refs #OR (b) described the issue in-PR following the relevant issue template