Repository navigation
Add Visual Studio 2026 (GitHub Copilot in VS) as a harness #283
Description
Problem
AI Engineer Coach reads sessions from VS Code (Copilot Chat), GitHub Copilot App/CLI (~/.copilot/session-state), Xcode, and the external harnesses Claude Code, Codex CLI and OpenCode (src/core/parser-harnesses.ts). There is no collector for Visual Studio 2026 (18.x).
Developers using GitHub Copilot Chat / agent mode inside Visual Studio (.NET, C++ shops) therefore get no Timeline, Output, Patterns or Anti-Patterns coverage for that work — even though the extension (or the Copilot app canvas) runs on the same Windows machine and the session data already exists locally. Since the April 2026 update, Visual Studio keeps a dedicated chat history panel (titles, message previews, timestamps), so the sessions are persisted and parseable.
Related: #151 (additional harnesses on hold). Xcode support shows the project already accepts non-VS Code IDEs as first-class harnesses, which is the precedent for this request.
Proposed Solution
- New collector
Visual Studioinsrc/core/parser-harnesses.ts, backed bysrc/core/parser-visualstudio.tsfollowing theparser-claude/parser-codex/parser-opencodepattern:findVisualStudioDirs()+parseVisualStudioSessions(dir, editLocIndex). Add'VisualStudio'toEXTERNAL_HARNESS_SET. - Discovery, Windows only (
process.platform === 'win32'):- primary: the VS 2026 persisted chat-session store (undocumented; expected under
%LOCALAPPDATA%\Microsoft\VisualStudio\18.0_<instance>\— path and schema to confirm, I can provide anonymised samples); - fallback:
%LOCALAPPDATA%\Temp\**\*VSGitHubCopilot.chat.log— the format VS 2022 used (system prompt, analysed context, user/assistant turns). See https://github.com/orgs/community/discussions/57190#discussioncomment-11536706.
- primary: the VS 2026 persisted chat-session store (undocumented; expected under
- Mapping to
Session:- workspace = solution (
.sln/.slnx) or project folder found in the log context; - user / assistant turns → requests/responses with timestamps;
- model id → model usage table;
- agent-mode tool calls (e.g.
get_symbol_call_hierarchy, Debugger agent) → tool-mastery metrics; - generated code blocks →
EditLocIndex(code output by language).
- workspace = solution (
- Harness label
Visual Studioin the sidebar/harness breakdown, distinct fromVS Code. hasExternalHarnessSources()returnstruewhen VS logs exist, so the dashboard opens on a machine with no VS Code workspace storage (same reasoning as fix: load dashboard when only non-VS Code harness logs exist (Claude/Codex/OpenCode) #53).- Fail soft: skip unparsable files and surface a count through the harness progress handlers, since the VS log format is undocumented and may change between updates.
I'm happy to contribute this as a PR (parser + sample logs + tests) rather than ask the maintainers to build it.
Alternatives Considered
- Use Copilot CLI from the Visual Studio terminal — works today and lands in the
GitHub Copilot CLIharness, but misses the IDE chat/agent sessions, which is where most VS users work. - Export each VS chat manually (copy as Markdown) and convert to the VS Code
chatSessionsJSON format — no stable export format from VS, and not sustainable day to day. - Keep a separate fork with the parser — fragments the "any harness, one dashboard" promise and loses the shared rule set.
- Wait for Microsoft to document the VS session store — no public timeline; a tolerant parser with a Temp-log fallback is useful now.
Activity
github-actions commentedon Oct 7, 2026
🎯 Triage report
This is a well-scoped feature request to add Visual Studio 2026 Copilot chat/agent sessions as a new harness source, with concrete parser touchpoints already identified. The request is actionable for planning, but implementation still depends on validating the actual Windows session-store location/schema and getting representative sample logs because the format is undocumented.
📊 Assessment
🔗 Similar issues
💡 Notes and suggestions
Useful implementation/decomposition notes for maintainers:
src/core/parser-harnesses.ts, a newsrc/core/parser-visualstudio.ts, harness labeling, and the external-harness gate precedent referenced from fix: load dashboard when only non-VS Code harness logs exist (Claude/Codex/OpenCode) #53.EditLocIndexreliably.Suggested checklist:
Sessionmapping and failure behavior for partial/unparsable filesVisual Studioharness classification and dashboard/source gating coverageAdd this agentic workflows to your repo
To install this agentic workflow, run