You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add honest, isolated Claude Code and Codex harness connectors to Review Tutor after #59 / PR #61 is human-approved.
Review Tutor currently has one real connector: Pi. The browser must continue to show only harnesses that are actually installed, available, and supported. No disabled placeholders or UI-only options.
Status
Deferred / planned. Do not start implementation until PR #61 is finished and human-approved.
This is multi-PR work and must remain dark on main until the complete flow is ready. Proposed feature flag: reviewTutorHarnessConnectors (default off). Label this issue flagged; flag removal is part of completion after the enabled release.
Product contract
Keep harness and model as separate concepts.
Preserve the local-first, loopback-only Review Tutor security model.
Run every question in a new isolated child process; never reuse or attach to the parent coding-agent session.
Keep tutor tools read-only and bounded. The browser receives no provider credentials.
Show Claude Code or Codex only after connector discovery succeeds; explain unavailable connectors outside the primary flow rather than presenting fake choices.
Namespace model identities by harness so equal provider model names cannot collide.
Keep Pi behavior unchanged while the flag is off.
Required design work
Before implementation, freeze a connector boundary that owns:
executable and capability discovery;
harness-specific model discovery and thinking/reasoning options;
isolated invocation and prompt transport;
normalized progress, answer, error, and terminal events;
cancellation and process-tree cleanup;
bounded stdout/stderr parsing and actionable failure messages;
credential redaction and an explicit child-environment policy.
Do not add a harness field opportunistically to the existing rt/1 request. Define and test the protocol migration or compatibility strategy first.
Security and process requirements
Preserve loopback binding, random bearer token, exact Origin/Host checks, CSP, and no credential exposure to page state or logs.
Preserve detached POSIX process groups, bounded output, SIGTERM → SIGKILL escalation, server-shutdown cleanup, and one terminal outcome.
Add equivalent proven Windows process-tree cancellation before claiming Windows support.
Use a minimal documented environment policy; never print tokens, API keys, auth files, or provider command lines containing secrets.
Restrict child tools to the Review Tutor read-only allowlist (read,grep,find,ls) or the closest enforceable provider-native equivalent. If a provider cannot enforce that boundary, mark the connector unavailable rather than weakening it silently.
Use immutable input snapshots; do not grant source-editing authority.
Delivery slices
PR 1 — Connector boundary and protocol decision
Add a harness connector registry with Pi implemented through the boundary and no behavior change.
Freeze the request/state/event compatibility strategy and namespaced model identity.
Add fake-executable contract tests for discovery, lifecycle events, malformed output, timeouts, cancellation races, process cleanup, and redaction.
Add the default-off reviewTutorHarnessConnectors flag.
PR 2 — Claude Code connector
Detect the real executable and supported non-interactive interface.
Discover only models/options the local installation can honestly run.
Enforce isolated, read-only execution and normalized cancellation.
Goal
Add honest, isolated Claude Code and Codex harness connectors to Review Tutor after #59 / PR #61 is human-approved.
Review Tutor currently has one real connector: Pi. The browser must continue to show only harnesses that are actually installed, available, and supported. No disabled placeholders or UI-only options.
Status
Deferred / planned. Do not start implementation until PR #61 is finished and human-approved.
This is multi-PR work and must remain dark on
mainuntil the complete flow is ready. Proposed feature flag:reviewTutorHarnessConnectors(default off). Label this issueflagged; flag removal is part of completion after the enabled release.Product contract
Required design work
Before implementation, freeze a connector boundary that owns:
Do not add a
harnessfield opportunistically to the existingrt/1request. Define and test the protocol migration or compatibility strategy first.Security and process requirements
read,grep,find,ls) or the closest enforceable provider-native equivalent. If a provider cannot enforce that boundary, mark the connector unavailable rather than weakening it silently.Delivery slices
PR 1 — Connector boundary and protocol decision
reviewTutorHarnessConnectorsflag.PR 2 — Claude Code connector
PR 3 — Codex connector
PR 4 — Enabled UI and cross-harness acceptance
Acceptance criteria