You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 4abf873
Browse filesBrowse the repository at this point in the historyBrowse files
- Add the `mothership-abandoned-run-takeover-disabled` AppConfig kill switch,
checked once per scan; off by default, so takeovers run unless it is on.
- Stop a controller whose chat lock lapsed while every renewal threw, so a
controller partitioned from Redis cannot keep driving a run taken over.
- Never revoke another call awaiting its re-run from a sibling's wait or
workbench access; the sibling's workbench access still stops that call's
dead attempt's commands.
- Treat a workspace access loss found inside recovery like an authorization
denial, by error type; other recovery failures stay recoverable.
- Cover organization Assistant takeover for a member and a removed member.
* An interrupted execution a takeover may still run again: its run still admits tools. Another
763
+
* call's wait or workbench access must not revoke it as interrupted before that re-run.
764
+
*/
765
+
constrerunnableSimExecution=and(
766
+
interruptedSimExecution,
767
+
sql`EXISTS (SELECT 1 FROM ${copilotRuns} r WHERE r.id = ${copilotAsyncToolCalls.runId} AND r.tool_admission_closed_at IS NULL AND r.status NOT IN (${sql.join(
sql`EXISTS (SELECT 1 FROM ${copilotRuns} r WHERE r.id = ${copilotAsyncToolCalls.runId} AND r.id = ${input.runId}::uuid AND r.user_id = ${input.userId})`
1023
+
and(
1024
+
sql`EXISTS (SELECT 1 FROM ${copilotRuns} r WHERE r.id = ${copilotAsyncToolCalls.runId} AND r.id = ${input.runId}::uuid AND r.user_id = ${input.userId})`,
@@ -1358,7 +1382,11 @@ export async function prepareWorkbenchAccess(
1358
1382
)
1359
1383
awaitrevokeExpiredExecutions(
1360
1384
tx,
1361
-
sql`EXISTS (SELECT 1 FROM ${copilotRuns} r WHERE r.id = ${copilotAsyncToolCalls.runId} AND r.chat_id = ${owner.chatId} AND r.user_id = ${input.userId})`
1385
+
and(
1386
+
sql`EXISTS (SELECT 1 FROM ${copilotRuns} r WHERE r.id = ${copilotAsyncToolCalls.runId} AND r.chat_id = ${owner.chatId} AND r.user_id = ${input.userId})`,
1387
+
/** This run was just verified to admit tools; every older run's admission just closed. */
0 commit comments