Skip to content

Subscription (MCP / Claude Code) end-to-end + docs (v1.88 → v1.96) - #3

Merged
debug23win merged 10 commits into
mainfrom
claude/dynamo-document-persistence-issue-b3h1ay
Jul 8, 2026
Merged

Subscription (MCP / Claude Code) end-to-end + docs (v1.88 → v1.96)#3
debug23win merged 10 commits into
mainfrom
claude/dynamo-document-persistence-issue-b3h1ay

Conversation

@debug23win

Copy link
Copy Markdown
Owner

Brings the subscription (Claude Code / MCP) path from broken-launch to a working, field-validated feature, and updates the docs.

Highlights

  • Claude Code launcher: resolve claude across PATH + npm/native/Desktop-bundled/native-installer locations (Revit's GUI PATH often can't see it); clean, readable errors; UTF-8 stderr.
  • Drive Revit from the chat pane on the subscription — pick Subscription in the model dropdown; the local claude CLI runs headless via the in-process MCP server. Model selection via --model. Zero API cost.
  • Benchmark on the subscription — run the tested model and/or the impartial judge through Claude Code (no API credit needed). MCP-connection diagnostics in the judge reason.
  • MCP parity with the API path (v1.96)initialize instructions 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.
  • Settings: Claude Code executable-path field.
  • Docs: Help (RU/EN) gains Subscription-mode and Benchmark sections; README/README.ru tool count 153→180+ and document Auto/advisor, subscription (MCP), benchmark, lazy tool loading; ROADMAP updated (subscription SHIPPED + parity; borrow dynamic tool loading + stdio adapter from revit-mcp).

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

claude added 10 commits July 7, 2026 22:49
…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
@debug23win
debug23win merged commit 77f0d28 into main Jul 8, 2026
1 check passed
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.

2 participants