Skip to content

feat(review-tutor): add claude-code connector - #77

Open
ElbertePlinio wants to merge 2 commits into
feat/review-tutor-connector-boundaryfrom
feat/review-tutor-connector-claude
Open

feat(review-tutor): add claude-code connector#77
ElbertePlinio wants to merge 2 commits into
feat/review-tutor-connector-boundaryfrom
feat/review-tutor-connector-claude

Conversation

@ElbertePlinio

@ElbertePlinio ElbertePlinio commented Aug 25, 2026

Copy link
Copy Markdown
Member

Changed

  • add the flag-gated Claude Code connector for discovery, isolated read-only invocation, stream parsing, usage, and mapped failures
  • keep assistant answers in the runner-owned sink and clear connector terminal/model state after every completed run
  • omit usage when Claude Code does not report it and simplify the Claude Code 2.1+ version gate
  • document that the server enforces thinking levels through model membership
  • register unavailable harness state without exposing models
  • document the connector credential environment boundary
  • add fake/fixture coverage for discovery, parsing, sequential-run isolation, runner isolation/cancellation/redaction, and /api/state

Tested

  • cd packages/review-tutor && npm run typecheck
  • npx vitest run packages/review-tutor/test — 302 passed
  • bun run check — 593 passed, 25 skipped; lint, coverage, and builds passed

Not tested

  • live unauthenticated ask path
  • macOS and Windows

Risk

  • Risk class: serious backend
  • Child-process isolation and credential forwarding are the main risk; exact argv, environment allowlist, init tool/permission checks, cancellation, and redaction are pinned by tests.
  • Stacked on the hardened connector boundary in PR feat(review-tutor): add harness connector boundary #76 and rebased onto fb6a9cc.

Real smoke evidence

  • Flag: reviewTutorHarnessConnectors
  • Prompt via stdin: Reply with the single word ok.
  • Exact argv: claude -p --output-format stream-json --verbose --include-partial-messages --model sonnet --effort low --tools Read,Grep,Glob --permission-mode dontAsk --strict-mcp-config --setting-sources '' --disable-slash-commands --no-session-persistence --max-turns 8
  • Exit code: 0; answer: ok
  • Sanitized real init: {"subtype":"init","model":"claude-sonnet-5","permissionMode":"dontAsk","tools":["Glob","Grep","Read"],"claude_code_version":"2.1.245"}
  • The real tools are a strict subset of {Read, Grep, Glob}, so the strict subset assertion remains in place.
  • No configured secret pattern or [redacted] marker appeared in the captured events.

Refs #63

@ElbertePlinio
ElbertePlinio force-pushed the feat/review-tutor-connector-claude branch from 18257b0 to 089ff84 Compare August 25, 2026 20:36
@ElbertePlinio

Copy link
Copy Markdown
Member Author

Ready for human review at 089ff84 (stack: #76#77). Panel: Opus correctness (P1 evidence, 2×P2, P3s → fixed and verified), Grok security/process clean. Real smoke: sonnet/low → "ok", init tools Glob/Grep/Read, dontAsk. Deferred P3s (message quality, test strength) tracked in a follow-up on #63. CI green.

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