WSL agent launch previously wrapped the command in a nested
`sh -c "<baked string>"` construction. In some environments (e.g. RHEL8)
this fails before ACP connects (the process exits 1), and command
paths/args with spaces broke because the command was interpolated
unescaped.
Launch agents instead with:
wsl.exe [--exec] /bin/sh -c '<constant launcher>' sh <pathDir> <cwd> <command> <args...>
This skips wsl's default-shell layer (--exec), runs under the user's
login shell so ~/.profile is sourced (environment preserved, unlike a
bare --exec), and passes command/args as argv (no quoting of user data).
Also forward configured env vars (API keys, custom agent env, tool env)
into WSL via WSLENV (buildWslEnv), so the plugin's API key field works in
WSL mode without requiring keys in ~/.profile. Defensive: skips empty
values and invalid names, merges existing WSLENV, never throws.
Add a vitest unit-test suite for the platform WSL helpers (39 cases,
incl. exact argv-ordering checks), with an obsidian stub alias and a
dedicated tsconfig for typed linting of tests.
Builds on #304 (direct WSL exec for absolute-path commands); this retains
the environment that a bare --exec would drop and also fixes paths/args
with spaces.
Terminal launch keeps the existing wrapper for now (env forwarding is
applied); a terminal-specific hybrid follows separately.
Google is retiring account login for Gemini CLI (Pro/Ultra/free tiers)
on June 18, 2026. Surface this in-app and document the migration path.
- Show an info banner above the input while the Gemini CLI agent is
selected, reusing the existing ErrorBanner (info variant). Driven
synchronously by agent id (no network), on its own channel separate
from the npm-backed agent update notification. Dismisses on close,
send, or agent switch.
- Add optional `link` to ErrorInfo / AgentUpdateNotification so the
banner can render a "Learn more" anchor to the docs (backward
compatible; existing usages unaffected).
- Add a dedicated docs page under a new "Announcements" sidebar section
explaining what changes, who is affected, and how to keep using
Gemini via a paid API key (with free-tier and privacy caveats). Note
Antigravity CLI is not ACP-capable yet; mention the agy-acp bridge as
a limited custom-agent workaround.
- Add a deprecation callout to the Gemini CLI setup page, plus tips to
fall back to `gemini /auth` when the in-app API key isn't picked up.
- Session Manager: explain the dedicated sidebar view that lists
open chat sessions with live status icons, how to open it (chat
header menu or command palette), the four status icons, and the
Rename/Close actions
- Prompt Injection: explain the first-message instructions that
guide agents toward Obsidian-flavored Markdown (wikilinks,
LaTeX math, table spacing), with the actual injected strings
for reference
- Add both pages to the VitePress sidebar under Usage
- Add screenshots: Session Manager view, context menu, four
status icons, and the Prompt injection settings section
- Replace plain "Enter the API key" instructions with the new
Link... button + Select secret dialog flow in all three built-in
agent setup pages (Claude Code, Codex, Gemini CLI)
- Add an info block per agent describing the automatic v0.10.x
plaintext-to-secretStorage migration, including the fallback
ID used when the default ID collides with another plugin
- Align the troubleshooting page's authentication section with
the same Link... wording and cross-link to each setup guide
- Replace "Claude Code (ACP)" labels with "Claude Code" and
prefix nav paths with "Built-in agents" to match the actual
Settings UI section structure
Reflect that path configuration is now optional in most cases.
Add Auto-detect as a recommended first step when agents are not found.
Add multi-device vault sync section to troubleshooting.
- Add Frontmatter tag setting to chat-export.md
- Update FAQ with new agent switching behavior
- Add multi-session and broadcast command FAQs
- Add custom frontmatter tag FAQ
- Add Multi-Session Chat section with link to new page
- Update Switching Agents to reflect new header menu behavior
- Replace switching-agents.webp with switch-agent.webp and switch-default-agent.webp