Skip to content

feat(mcp): add safe planning elicitation#371

Merged
JSONbored merged 3 commits into
JSONbored:mainfrom
bitloi:feat/issue-275-safe-planning-elicitation
Jun 4, 2026
Merged

feat(mcp): add safe planning elicitation#371
JSONbored merged 3 commits into
JSONbored:mainfrom
bitloi:feat/issue-275-safe-planning-elicitation

Conversation

@bitloi

@bitloi bitloi commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Closes feat(mcp): add non-sensitive elicitation for planning choices #275.
  • Adds an allowlisted MCP form elicitation request for gittensory_agent_plan_next_work when a client supports form elicitation and planner context is missing.
  • Applies only safe planning choices (repoFullName, contribution lane, time horizon, risk appetite, cleanup-first) and keeps explicit tool inputs authoritative.
  • Returns deterministic audit metadata plus sanitized accepted choices so MCP clients can see whether elicitation was supported, requested, and accepted.

Scope

  • This PR is focused and does not mix unrelated backend, UI, MCP, docs, dependency, and deploy changes.
  • This follows CONTRIBUTING.md and does not reintroduce GitHub Pages, VitePress, site/, or CNAME.
  • I linked an issue, or this is small enough that the summary explains why an issue is not needed.

Validation

  • git diff --check
  • npm run actionlint
  • npm run typecheck
  • npm run test:coverage locally; global coverage stays at or above 97% for lines, statements, functions, and branches (aim for 98%+ branch coverage locally so CI variance does not fail near the threshold)
  • npm run test:workers
  • npm run build:mcp
  • npm run test:mcp-pack
  • npm run ui:openapi:check
  • npm run ui:lint
  • npm run ui:typecheck
  • npm run ui:build
  • npm audit --audit-level=moderate
  • New or changed behavior has unit/integration tests for new branches, fallback paths, and sanitizer boundaries

Additional focused checks:

  • npm run test -- test/unit/mcp-planning-elicitation.test.ts
  • npm run typecheck
  • npm run test:ci

If any required check was skipped, explain why:

  • None.

Safety

  • No secrets, wallet details, hotkeys, coldkeys, user PATs, private keys, raw trust scores, private rankings, or private maintainer evidence are exposed.
  • Public GitHub text stays sanitized, low-noise, and does not imply compensation guarantees or optimization tactics.
  • Auth, cookie, CORS, GitHub App, Cloudflare, or session changes include negative-path tests.
  • API/OpenAPI/MCP behavior is updated and tested where needed.
  • UI changes use live API data or real empty/error/loading states, not production mock/demo fallbacks.
  • Visible UI changes include screenshots or a short recording.
  • Public docs/changelogs are updated where needed; changelogs are only edited for release-prep PRs.

Notes

  • No UI, migration, deploy, dependency, docs, or changelog changes.
  • MCP clients without form elicitation continue to run gittensory_agent_plan_next_work with defaults and explicit inputs.
  • Sensitive-field attempts are blocked by request validation and accepted elicitation content is filtered through the planning-choice allowlist.

@bitloi bitloi requested a review from JSONbored as a code owner June 4, 2026 06:39
@dosubot dosubot Bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Jun 4, 2026
@github-actions github-actions Bot added the feature New feature or request label Jun 4, 2026

@JSONbored JSONbored left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bitloi this looks mergeable.

A few notes:

  • The elicitation surface is scoped to planning and does not try to make Dosu or the MCP path decisive.
  • The branch is locally merge-clean against current main.
  • No code changes requested.

Validation expected:

  • Keep the current green CI run after any required branch update.

@dosubot dosubot Bot added the lgtm This PR has been approved by a maintainer label Jun 4, 2026
@JSONbored JSONbored merged commit c7a1d16 into JSONbored:main Jun 4, 2026
4 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in gittensory - v1 roadmap Jun 4, 2026
@github-actions github-actions Bot mentioned this pull request Jun 5, 2026
12 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature or request lgtm This PR has been approved by a maintainer size:L This PR changes 100-499 lines, ignoring generated files.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

feat(mcp): add non-sensitive elicitation for planning choices

2 participants