Summary
After the Goose ACP pin that added validate_absolute_cwd, Berd's default working directory (~, and also ~/…, empty, and .) fails session/new / session/load / fork with:
cwd must be an absolute path
That blocks every local persona from starting a session, so they never reach the CLI.
ACP (Goose, Buzz agent, MindPi, etc.) requires a POSIX-absolute path. ~ is not one.
Expected
Local ACP cwd is $HOME (or $HOME/…) on the wire. SSH backends keep the host spelling of ~ (remote home).
Local fix (not yet PR'd)
Expand at the ACP client wire in toAcpAbsoluteCwd (src/shared/api/acpCwd.ts), used by newSession, loadSession, forkSession, and updateWorkingDir.
Proof: pnpm vitest run src/shared/lib/homePath.test.ts src/shared/api/acpCwd.test.ts src/shared/api/__tests__/acpApi.test.ts src/shared/api/__tests__/acp.test.ts — 92 passed.
Residual
SSH backends still send ~. Remote Goose after the same pin will still 422 until the remote process expands home.
Summary
After the Goose ACP pin that added
validate_absolute_cwd, Berd's default working directory (~, and also~/…, empty, and.) failssession/new/session/load/ fork with:That blocks every local persona from starting a session, so they never reach the CLI.
ACP (Goose, Buzz agent, MindPi, etc.) requires a POSIX-absolute path.
~is not one.Expected
Local ACP
cwdis$HOME(or$HOME/…) on the wire. SSH backends keep the host spelling of~(remote home).Local fix (not yet PR'd)
Expand at the ACP client wire in
toAcpAbsoluteCwd(src/shared/api/acpCwd.ts), used bynewSession,loadSession,forkSession, andupdateWorkingDir.Proof:
pnpm vitest run src/shared/lib/homePath.test.ts src/shared/api/acpCwd.test.ts src/shared/api/__tests__/acpApi.test.ts src/shared/api/__tests__/acp.test.ts— 92 passed.Residual
SSH backends still send
~. Remote Goose after the same pin will still 422 until the remote process expands home.