fix(chat): enable draft auto-accept before first message (#2045)

* fix(chat): enable draft auto-accept before first message

* fix(test): use supported bun assertions

* fix(chat): apply draft auto-accept before session switch

---------

Co-authored-by: bashrusakh <bashrusakh@users.noreply.github.com>
This commit is contained in:
Leonid
2026-07-11 15:15:02 +03:00
committed by GitHub
co-authored by bashrusakh
parent 0242765bc8
commit 9bfc5bf0be
4 changed files with 435 additions and 15 deletions
@@ -0,0 +1,36 @@
export type PermissionAutoAcceptToggleArgs = {
permissionScopeSessionId: string | null;
newSessionDraftOpen: boolean;
draftPermissionAutoAcceptEnabled: boolean;
permissionAutoAcceptEnabled: boolean;
setDraftPermissionAutoAcceptEnabled: (enabled: boolean) => void;
setSessionAutoAccept: (sessionId: string, enabled: boolean) => Promise<void>;
onOpenSessionFirst: () => void;
onToggleFailed: () => void;
};
export const togglePermissionAutoAccept = (args: PermissionAutoAcceptToggleArgs): void => {
const {
permissionScopeSessionId,
newSessionDraftOpen,
draftPermissionAutoAcceptEnabled,
permissionAutoAcceptEnabled,
setDraftPermissionAutoAcceptEnabled,
setSessionAutoAccept,
onOpenSessionFirst,
onToggleFailed,
} = args;
if (!permissionScopeSessionId) {
if (!newSessionDraftOpen) {
onOpenSessionFirst();
return;
}
setDraftPermissionAutoAcceptEnabled(!draftPermissionAutoAcceptEnabled);
return;
}
const nextEnabled = !permissionAutoAcceptEnabled;
void setSessionAutoAccept(permissionScopeSessionId, nextEnabled).catch(onToggleFailed);
};