Skip to content

feat: add target resolution CLI dogfood surface - #267

Draft
jlitola wants to merge 8 commits into
mainfrom
resolve-target-plan
Draft

feat: add target resolution CLI dogfood surface#267
jlitola wants to merge 8 commits into
mainfrom
resolve-target-plan

Conversation

@jlitola

@jlitola jlitola commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add githits resolve <name> for internal package and GitHub repository target-resolution dogfooding.
  • Add a dedicated service with compact terminal and detailed JSON GraphQL selections, shared authentication/error handling, and no expensive candidate inspection.
  • Render neutral numbered candidates with inline protected-name markers, descriptions, trust evidence, canonical GitHub labels, and safe ambiguous follow-ups.
  • Add stable deduplicated JSON output, command/container wiring, product documentation, and source/built smoke coverage.

Safety

  • Sanitize all untrusted resolver terminal values against ANSI, OSC, C0, C1, and DEL control-sequence injection, including the follow-up target.
  • Keep unknown enum and ambiguity output forward-compatible without rendering backend-controlled labels directly.
  • Document the separate repository-wide terminal metadata sanitization increment; raw source/document content remains outside that future slice pending an explicit content-contract decision.

Validation

  • bun test - 2,618 passed after rebasing onto origin/main.
  • bun run typecheck.
  • Root and @githits/mcp builds.
  • Built CLI unauthenticated smoke and built MCP registration smoke.
  • Source smoke resolve probes passed; later authenticated get_example probes were rate-limited during the latest run.
  • Independent code review found no implementation issues after fixes.

Known release gates

  • This remains a draft dogfood surface and must not be published until the backend release gates in docs/plans/resolve-target.md pass.
  • Bare guava currently selects the wrong Maven package without Google-specific context; the finding is recorded for backend corpus/ranker work.
  • Package candidates still lack linked-repository trust metrics; tracked in githits-com/pkgseer-backend#1666. Terminal output falls back to the canonical linked repository label.

Introduce the internal GraphQL client with compact and detailed field modes. Reuse package intelligence error classification without changing public MCP service interfaces.
Add shared request normalization and compact response formatting, wire the internal service through both auth paths, and expose the branch-local dogfood command.
Add product smoke and durable CLI documentation, tighten GraphQL field selection for compact output, and cover privacy guidance for both free-text ranking hints.
Capture the production ranking contradiction found during Phase 1 dogfooding so it can be added to the backend evaluation corpus.
Record that package-kind constraints do not break the production tie while Google-specific task context selects the expected artifact.
Show descriptions and available popularity/trust signals for every candidate while keeping inspection off the hot path. Harden terminal rendering for unknown backend values and control sequences.
Render ranked targets as a neutral numbered candidate list with inline trust evidence, canonical repository labels, and safe ambiguous follow-ups. Record the approved size exception and the separate repository-wide terminal sanitization plan.
Replace local feature-request references with the durable PkgSeer backend issue so the resolver release gate remains actionable after merge.
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.

1 participant