Part of #8230, item 7. begin in src/crew/conversation.ts passes cwd: app.config.dataDir to runClaude. That directory holds forge.db and secret.key. The turn has no shell and no file tools, but nothing should be one tool away from them.
Give turns a stable, empty directory under FORGE_APP_DATA (for example <dataDir>/conversation-cwd), created at first use.
Claude Code keys stored sessions by cwd, so a conversation whose stored session was made under the old cwd cannot be resumed. When --resume finds no session (no init record, the turn not aborted), start that one message fresh once instead of answering "I could not answer that just now" forever. Test it with the fake binary in test/conversation-turn.test.ts: the turn's cwd is the empty directory, and a missing session starts fresh.
Part of #8230, item 7.
begininsrc/crew/conversation.tspassescwd: app.config.dataDirtorunClaude. That directory holds forge.db and secret.key. The turn has no shell and no file tools, but nothing should be one tool away from them.Give turns a stable, empty directory under FORGE_APP_DATA (for example
<dataDir>/conversation-cwd), created at first use.Claude Code keys stored sessions by cwd, so a conversation whose stored session was made under the old cwd cannot be resumed. When
--resumefinds no session (no init record, the turn not aborted), start that one message fresh once instead of answering "I could not answer that just now" forever. Test it with the fake binary intest/conversation-turn.test.ts: the turn's cwd is the empty directory, and a missing session starts fresh.