feat(watchdogs): add experimental self-mode watchdogs

- Add enableWatchdogEverything experimental instance setting and UI toggle.
- Add issue_watchdogs.mode and accept mode in the watchdog endpoint.
- Wake task assignees directly for stopped self-mode watchdogs.
- Add first-instruction guidance for assignment-shaped wakes.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
DottaandPaperclip committed 2026-07-29 19:07:29 +00:00
1 parent 9574cad3e8
commit 7b4722e26c
21 files changed
+554 -4

No files matched your search

@@ -86,6 +86,7 @@ function defaultExperimentalSettings(): InstanceExperimentalSettingsPayload {
enableDecisions: false,
enableGoalsSidebarLink: false,
enableTaskWatchdogs: false,
enableWatchdogEverything: false,
enableCloudSync: false,
enableServerInfoDebugView: false,
enableSmokeLab: false,
@@ -368,6 +368,7 @@ export function InstanceExperimentalSettings() {
const enableExperimentalFileViewer =
experimentalQuery.data?.enableExperimentalFileViewer === true;
const enableTaskWatchdogs = experimentalQuery.data?.enableTaskWatchdogs === true;
const enableWatchdogEverything = experimentalQuery.data?.enableWatchdogEverything === true;
const enableCloudSync = experimentalQuery.data?.enableCloudSync === true;
const enableExternalObjects = experimentalQuery.data?.enableExternalObjects === true;
const enableBuiltInAgents = experimentalQuery.data?.enableBuiltInAgents === true;
@@ -686,6 +687,16 @@ export function InstanceExperimentalSettings() {
ariaLabel="Toggle task watchdogs experimental setting"
/>
<ExperimentalToggleCard
title="Watchdog Everything"
description="On new task assignments, instruct the assignee to first decide whether the task needs a completion goal and, if so, register it as a self-mode watchdog on the task itself. The watchdog then wakes the same agent directly on the task to verify the goal passed — no separate watchdog sub-task is created. Simple tasks are allowed to skip the watchdog."
checked={enableWatchdogEverything}
onCheckedChange={(checked) => toggleMutation.mutate({ enableWatchdogEverything: checked })}
disabled={toggleMutation.isPending}
managed={managedKeys.enableWatchdogEverything}
ariaLabel="Toggle watchdog everything experimental setting"
/>
<ExperimentalToggleCard
title="Cloud Sync"
description="Show local Paperclip Cloud upstream connection, preview, push, retry, and activation review surfaces. Saved connections and run history are preserved when this is disabled."