Repository navigation
fix: save new chats, find npx and hide agent consoles on Windows - #59
Conversation
New v3 chats need held directory capabilities, which Windows never supplied: every save of a new chat was refused and its queue paused. A strict capability now keeps a handle to every ancestor, opened without delete sharing and as a reparse point, so no held directory can be renamed or replaced by a junction while it lives; its identity comes from the handle's volume serial and file index. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WAgRyZmbmoaRukKppczMRc
Every failed save advised checking disk space, including a missing storage capability. The runtime now classifies the typed cause chain as unsupported storage, a full volume, refused access or another failure, and only a full volume suggests freeing space. Queued messages stay queued in every case. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WAgRyZmbmoaRukKppczMRc
The agent environment allow-list compared names case-sensitively, so Windows' `Path` was dropped and `npx` was never found without an absolute path. Names now match without case on Windows and get one spelling, and bare commands also search the usual Node.js locations. Agents and taskkill start with CREATE_NO_WINDOW, so a GUI build no longer opens console windows when a chat starts or stops an agent. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WAgRyZmbmoaRukKppczMRc
Runs the chat repository on the production LocalFilesystem for every environment and context, including restart and queue recovery, and refuses a junctioned account partition on Windows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WAgRyZmbmoaRukKppczMRc
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WAgRyZmbmoaRukKppczMRc
ADR 0162 amends 0110: Windows supplies held directories for v3 chat history. ADR 0163 covers the agent environment, Node.js fallback locations and windowless start. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WAgRyZmbmoaRukKppczMRc
|
Build and test failed in The Windows job passed, including the new native tests ( Generated by Claude Code |
What
nocterm-localfs): strict directory capabilities now hold a handle to every ancestor, opened withoutFILE_SHARE_DELETEand withFILE_FLAG_OPEN_REPARSE_POINT. Their identity (volume serial + file index) is native, so new v3 chats save in every environment/context (ThisComputer/HubAccount × General/Project). Reparse points (junctions, symlinks, mount points) are refused. Partition and owner checks and atomic publication are unchanged.agent-runtime,agent-chat): a failed save is classified from its typed cause chain as unsupported storage / full volume / access denied / other. Only a full volume suggests freeing disk space. Queued messages stay queued in every case.nocterm-ai,nocterm-acp): the agent environment allow-list matched names case-sensitively, so Windows'Pathwas dropped andnpxwas never found. On Windows, names now match without case and are stored in a single spelling. If a bare command isn't onPATH, the usual Node.js locations are searched too. Resolved paths keep theC:\form thatcmd.exeaccepts.nocterm-acp): the agent process andtaskkillstart withCREATE_NO_WINDOW.Why
On Windows 4.1.0, every new chat failed to save with "This environment requires held native storage directory capabilities… check disk space". The queue paused for good. Users also had to type the absolute path to
npx, and console windows popped up whenever a chat started an agent.How it was verified
Linux:
cargo fmt --check,cargo clippy --workspace --all-targets -D warnings,cargo xtask architecture,cargo xtask docs --check, notice inputs check. Tests for localfs, ai, acp, agent-runtime, agent-chat and agent-storage pass, except one test that already failed on master here:explicit_cancel_reports_permission_failure…fails when run as root. The app testsnative_chat_history,agent_processandagent_history*pass. Windows target:cargo clippy --target x86_64-pc-windows-gnu -D warningsfor localfs, ai, agent-storage, agent-runtime and agent-chat with all targets, and for acp as a library only (acp's test targets already have unused-import warnings on Windows). Native Windows tests run in the CI Windows job.Notes for the reviewer
Not verified by hand in a real Windows GUI session.
Generated by Claude Code