Subscription (MCP / Claude Code) end-to-end + docs (v1.88 → v1.96) - #3
Merged
debug23win merged 10 commits intoJul 8, 2026
Merged
Conversation
…errors Revit is a GUI process with a narrower PATH than the user's shell, so a bare "claude" from an npm/native install often isn't found. The benchmark's Claude Code (MCP) rows all failed instantly with an unreadable CP866-mojibaked cmd.exe "not recognized as a command" message. Resolve the executable to a full path first (PATH + Windows extensions, then npm-global %APPDATA%\npm, native-install, and ~/.claude/local locations), route .cmd/.bat shims through cmd.exe by full path (no more "not recognized"), emit a clean actionable error when nothing is found, and set UTF-8 stderr so any real error is legible. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RCGB6xWx3ZtmWZRQEJtN6B
The ClaudeCodeExe setting existed in the store but had no UI, so there was no way to point Revit at a claude.cmd it can't find on its narrower GUI PATH. Add the field under the MCP config box with a hint (run 'where claude', usually %APPDATA%\npm\claude.cmd), wired to load/save + RU/EN localization. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RCGB6xWx3ZtmWZRQEJtN6B
Claude Desktop (the MSIX Store app) ships a working headless claude.exe under %LOCALAPPDATA%\Packages\Claude_*\LocalCache\Roaming\Claude\claude-code\<ver>\claude.exe, but it is not on PATH, so 'where claude' finds nothing and users assume the CLI is missing. Glob that location (newest version folder) so desktop-only users get the subscription path with no npm install and no manual path entry. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RCGB6xWx3ZtmWZRQEJtN6B
The Claude Code (MCP) benchmark launched but did nothing (1 round, 0 tokens, no model changes) — the CLI wasn't connecting to our MCP server, but the runner only showed 'Judge unavailable', hiding why. - Parse the init event's mcp_servers status and the result is_error/subtype in ClaudeCodeBackend; surface them in the benchmark reason (e.g. '[MCP: clauderevit=failed — no Revit tools reached, nothing built]'). - Add ClaudeCodeBackend.CompleteAsync: a one-shot no-tools completion on the subscription. Route the benchmark judge through it (checkbox 'Judge on subscription', default on) so grading costs nothing on the API — it still grades from the objective probe only. - Make --mcp-config/--allowedTools optional in RunAsync (judge needs neither). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RCGB6xWx3ZtmWZRQEJtN6B
The native Claude Code installer (irm https://claude.ai/install.ps1 | iex) drops claude.exe in %USERPROFILE%\.local\bin — add the .exe variant of that path (was only checked without extension) and rank it ahead of other local installs, so a native install is picked up even before Revit's PATH refreshes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RCGB6xWx3ZtmWZRQEJtN6B
Add a 'Claude Code (subscription)' entry to the chat model picker. When picked, SendAsync routes to the local Claude Code CLI (via ClaudeCodeBackend) instead of the API: it starts the MCP server on demand, writes the client config, streams the CLI's narration into the pane, and keeps the CLI session id so follow-up messages continue the same conversation (--resume). ClearHistory resets it. The work runs on the user's Claude Pro/Max subscription — zero API cost — while they type in the familiar Revit pane. Assistant label reads 'Claude Code'. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RCGB6xWx3ZtmWZRQEJtN6B
Answer 'which model runs in MCP': previously the CLI's default. Now the model picker drives it. - ClaudeCodeBackend: --model support + ModelAlias(tag) mapping (opus-4-8→opus, sonnet-5→sonnet, haiku-4-5→haiku; auto/fable→CLI default). - Chat pane: a 'Subscription' checkbox. When on, the selected model runs through the Claude Code CLI on the subscription via --model (zero API cost) instead of the API; assistant label reads 'Claude Code'. - Benchmark: a 'Run on subscription' checkbox does the same for the tested model (row labelled claude-code:<alias>). Note surfaced in the tooltips: the Auto advisor / haiku→opus escalation is an API-loop feature and does NOT apply on the subscription — Claude Code runs its own loop with the one chosen model. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RCGB6xWx3ZtmWZRQEJtN6B
…atures - ClaudeCodeBackend: the MCP-status diagnostic now reports ONLY the clauderevit server, not every unrelated connector (Gmail, Drive, Booking.com…) the user's Claude Code has attached — that noise was leaking into the benchmark judge's reason column. - Help window (RU/EN): new sections for Subscription mode (MCP / Claude Code) and the model benchmark. - README.md / README.ru.md: tool count 153→180+, and document Auto/advisor, subscription (MCP) mode, the benchmark, and lazy tool loading, plus a 'Running on your subscription' section. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RCGB6xWx3ZtmWZRQEJtN6B
…ence, telemetry Bring subscription (Claude Code) mode closer to the API path: - MCP initialize instructions now also carry saved memory (project standards) and the proven-scripts digest, like the API system prompt. - The in-pane subscription send prepends the current document + selection so "this"/"the selected" resolve. - The Claude Code session id is persisted to disk, so the conversation continues across Revit restarts (and resets on Clear). - Per-task diagnostics show subscription usage (turns, time, tokens, MCP status) with a "no API charge" note. Clickable element IDs already work in this mode (the linker is text-based). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RCGB6xWx3ZtmWZRQEJtN6B
… + stdio adapter from revit-mcp Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RCGB6xWx3ZtmWZRQEJtN6B
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.
Brings the subscription (Claude Code / MCP) path from broken-launch to a working, field-validated feature, and updates the docs.
Highlights
claudeacross PATH + npm/native/Desktop-bundled/native-installer locations (Revit's GUI PATH often can't see it); clean, readable errors; UTF-8 stderr.claudeCLI runs headless via the in-process MCP server. Model selection via--model. Zero API cost.initializeinstructions carry saved memory + proven-scripts digest; the pane prepends current document + selection; CLI session id persists across Revit restarts; subscription usage in per-task diagnostics.Field validation
On-machine benchmark (subscription Opus): B0–B6 ✓, L3 ✓78, L4 ✓85, and domain tasks R1 rebar ✓90, S1 steel + connection ✓95. (L1/R2 failed on the time budget, not capability.)
🤖 Generated with Claude Code
https://claude.ai/code/session_01RCGB6xWx3ZtmWZRQEJtN6B
Generated by Claude Code