a chat with no chosen directory runs in the caller's own home
The default was DATA_PATH/<email>/general_chat_sessions, a dedicated directory so /chat sessions formed their own Claude project group instead of cluttering the home. It is a sibling of the home, and confineUserTree makes every sibling the platform's at 0700 because the others are attachments and email_accounts. So it was unreachable for a member: the first live member turn started there and every Bash call failed on its own working directory before doing anything. A per-member copy inside each home fixed the symptom and left two rules to remember. The owner chose one rule instead — the account's own home, whoever they are — and accepted the trade knowingly: /chat sessions now share a project group with anything else run from that home, which was the reason the dedicated directory existed. Removed rather than left dangling: getGeneralChatSessionsCwd, ensureGeneralChatSessionsCwd, ensureMemberChatCwd, and general_chat_sessions from USER_DIRS so new accounts stop getting it. Existing directories are untouched and their transcripts stay where they are — Claude groups by cwd, so the owner's old /chat history remains under its own project slug rather than moving. The UI labels move with it: the default group now reads "home" rather than naming a directory that no longer has a role. ChatIdentity keeps carrying both email and home. The pairing was justified in the comment by general_chat_sessions being email-derived, which is now gone — but the distinction it encodes is real (the email says who, the home says where), so the comment explains that instead. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -52,16 +52,7 @@ export const getOwnerHomeDir = (email: string): string => process.env.HOME_DIR ?
|
||||
// Single-sourced here rather than in the script that used to own the list, because there are now two
|
||||
// callers — `scripts/provision-user-dirs.ts` and the owner's create-account handler — and a skeleton
|
||||
// that differs depending on how the account was made is a bug nobody would think to look for.
|
||||
export const USER_DIRS = [
|
||||
'home',
|
||||
'attachments',
|
||||
'cache',
|
||||
'dashboards',
|
||||
'email_accounts',
|
||||
'general_chat_sessions',
|
||||
'logs',
|
||||
'sidecar',
|
||||
] as const;
|
||||
export const USER_DIRS = ['home', 'attachments', 'cache', 'dashboards', 'email_accounts', 'logs', 'sidecar'] as const;
|
||||
|
||||
/**
|
||||
* Create an account's root and its skeleton, closed by default.
|
||||
|
||||
Reference in New Issue
Block a user