Skip to content

v1.11.0

Latest

Choose a tag to compare

@github-actions github-actions released this 23 Jun 10:49

New Features

  • Restart-MCPServer command to retry starting the console engine in the affected console — no need to restart PowerShell.

Behavior Changes

  • Resume-safe console handling (new server session). On the proxy's first console attach after a (re)start — the resume / cold-start boundary, where the runtime is fresh but the AI still carries cwd/variable/module assumptions from earlier in the conversation — invoke_expression normalizes the working directory to $HOME and announces a new server session (with a one-line restore hint for a reclaimed console's prior cwd), while get_current_location / start_console preserve the console's current cwd and only announce. This stops a resumed session from silently running at an unexpected cwd or relying on state that didn't carry over.
  • Reuse-first console acquisition. Without a reason, start_console now reclaims any available console — an owned standby or an unowned one (a prior session's released console, or a user-started one) — and only launches a new window when nothing is available. Previously an unowned console was reclaimed only when start_location was given; that guard is gone (the new-session normalization above handles the cwd concern), so the desktop no longer fills with console windows.

Bug Fixes

  • Reduced an AMSI / antivirus false positive that could block startup (#50). The embedded polling engine no longer uses Invoke-Expression. Its three call sites only wrapped literal strings (cmdlet/type resolution is already deferred to runtime, and each was inside try/catch), so they added nothing but the single highest-weighted AMSI heuristic token — which helped the engine script get flagged as malicious at Import-Module. They are now direct calls; the engine contains zero Invoke-Expression.
  • No more spurious "cwd changed" warnings caused by the AI's own work. A directory change left by an AI command (including one harvested in the background via wait_for_completion) is now recorded, so the next command no longer misreads it as a user-typed cd. Paths that differ only by a trailing separator (C:\proj vs C:\proj\) no longer trip a false drift warning either.
  • A disconnected AI session no longer leaks its output to the next one. When the owning AI goes away, the console discards its undrained cached output and returns to a clean standby state, so a freshly-connecting AI can't drain the previous session's results.
  • Fixed a possible NullReferenceException when resolving a console's display name while no pipe was active.

Improvements

  • Graceful degradation when the engine is blocked at startup. If an antivirus/AMSI scan blocks the embedded engine during Import-Module (often transient), the module now stays loaded and emits one actionable warning instead of failing with a bare error. While the engine is down, commands fast-fail with guidance (run Restart-MCPServer) instead of hanging until the request times out.
  • A green AI session connected. line is now shown when the AI claims or spawns a console — the visible counterpart to the yellow AI session disconnected notice.
  • Get-MCPOwner and Restart-MCPServer share one PowerShell.MCP.Status output type with identical columns (EngineReady / Owned / ProxyPid / AgentId / ClientName / LastError).

Internal

  • Hardened console launching: the Windows init command is built from the shared helper (escaping the agent id like the other platforms), console-readiness checks go through a single PipeStatus.IsReady definition, and dead launcher code was removed.
  • Release safety gates: tagged releases now run the full unit suite (net8.0 + net9.0) and an Import-Module smoke test of the assembled package before publishing to PSGallery; a missing CHANGELOG section fails fast; PRs are gated and the polling engine is checked to stay free of Invoke-Expression (the #50 regression guard).
  • Expanded automated tests: multi-console identity/routing, per-agent isolation, cross-AI console visibility (via real named pipes), cwd-drift detection and normalization, the resume / first-attach new-session treatment, and engine graceful-degradation.