feat: guide per-file summaries + GitHub Copilot CLI agent engine#997
Open
backnotprop wants to merge 3 commits into
Open
feat: guide per-file summaries + GitHub Copilot CLI agent engine#997backnotprop wants to merge 3 commits into
backnotprop wants to merge 3 commits into
Conversation
Each diffs[] entry now carries a required (schema-enforced) 1-2 sentence summary of the semantic change in that file, written from the diff hunks alone. Sanitizer passes it through when it's a non-blank string and omits it otherwise -- a missing summary never drops the ref or fails the guide. Rendered as a muted inline-markdown line above each diff in the guide; marker-engine contract and demo data updated to match.
The guide schema now requires summary, so a schema-enforced repair of a payload that lacks them (marker-engine output) would force the model to fabricate captions with no diff in sight. Instruct it to fill missing required fields with an empty string instead; the sanitizer already renders nothing for blanks.
…e jobs Adds copilot as the fourth marker engine (no schema flag, so it uses the nonce-tagged marker-block contract like Cursor/OpenCode/Pi): - marker-review.ts: COPILOT_ENGINE — 'copilot --output-format json' JSONL stream (assistant.message carries the assembled text; deltas skipped), models discovered from 'copilot help config', live-log formatting for tool.execution_start/complete. Non-interactive posture: --no-ask-user auto-denies unallowed tools, --deny-tool=write, read-only-oriented shell allowlist (git/gh/glab/jj/wc), builtin MCPs and auto-update disabled. - Exported MarkerEngineId and replaced every 'cursor'|'opencode'|'pi' cast with it (Bun server, Pi server mirror, guide-review) so the next engine is a two-edit change. - agent-jobs (both runtimes): copilot in SERVER_BUILT_PROVIDERS; capability entry + model discovery come free from the MARKER_ENGINES loop. - UI: copilot review/guide engine with per-surface model settings (useAgentSettings), AgentsTab launch + config rows, GuideEmptyState launcher, job-detail labels, CopilotIcon (currentColor, official mark). - Tests: argv/read-only flags, help-config model parsing, stream reduction, full marker pipeline; profile-map expectations widened. Verified live: composed review prompt through the real copilot binary, marker block parsed, seeded bug found.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Two additions to the agent-job stack that shipped in #990/#993/#994:
1. Per-file summaries in Guided Review
Each
diffs[]entry in the guide schema now carries a requiredsummary: 1–2 sentences describing the semantic change in that file, written from the diff hunks alone — the prompt explicitly forbids per-file investigation (no opening files, no searches), keeping guide generation fast. Rendered as a muted line above each diff in the guide screen.--json-schema/--output-schema); prompt-enforced via the marker contract for Cursor/OpenCode/Pi/Copilot.2. GitHub Copilot CLI as an agent-job engine
copilotjoins Cursor/OpenCode/Pi as the fourth marker engine, launchable for both code review and guided review when the binary is on PATH:copilot --output-format jsonJSONL stream; assembled text read fromassistant.messageevents (deltas skipped, same shape as Pi'smessage_end).--no-ask-user(unallowed tools auto-deny cleanly),--deny-tool=write, shell allowlist limited togit/gh/glab/jj/wc, builtin MCP server + auto-update disabled. Sits between Claude (full subcommand granularity) and the other markers (unrestricted Bash) on the trust spectrum.copilot help config(no models subcommand exists); fails closed to a Default-only picker.currentColoricon.MarkerEngineIdand replaced every hand-repeated"cursor" | "opencode" | "pi"cast across both server runtimes — the next engine is a two-edit change.Verification
copilotbinary with the exact production argv → marker block parsed → seeded bug found with correct file/line/severity.deniedresult (no hang),ghnetwork calls work under the shell allowlist.Notes
--effortknob is deliberately not surfaced yet; easy follow-up if wanted.