feat(babysitting): make unstable-agent-babysitter always-on by default

Remove the 'enabled' flag from babysitting config - the hook now runs
automatically when not disabled via disabled_hooks. This simplifies
configuration and makes the unstable model monitoring a default behavior.

BREAKING CHANGE: babysitting.enabled config option is removed. Use
disabled_hooks: ['unstable-agent-babysitter'] to disable the hook instead.
This commit is contained in:
YeonGyu-Kim 2026-02-01 19:44:34 +09:00
parent 6080bc8caf
commit b6da473341
5 changed files with 6 additions and 14 deletions

View File

@ -2924,10 +2924,6 @@
"babysitting": {
"type": "object",
"properties": {
"enabled": {
"default": false,
"type": "boolean"
},
"timeout_ms": {
"default": 120000,
"type": "number"

View File

@ -313,7 +313,6 @@ export const NotificationConfigSchema = z.object({
})
export const BabysittingConfigSchema = z.object({
enabled: z.boolean().default(false),
timeout_ms: z.number().default(120000),
})

View File

@ -76,7 +76,7 @@ describe("unstable-agent-babysitter hook", () => {
const backgroundManager = createBackgroundManager([createTask()])
const hook = createUnstableAgentBabysitterHook(ctx, {
backgroundManager,
config: { enabled: true, timeout_ms: 120000 },
config: { timeout_ms: 120000 },
})
// #when
@ -111,7 +111,7 @@ describe("unstable-agent-babysitter hook", () => {
])
const hook = createUnstableAgentBabysitterHook(ctx, {
backgroundManager,
config: { enabled: true, timeout_ms: 120000 },
config: { timeout_ms: 120000 },
})
// #when
@ -139,7 +139,7 @@ describe("unstable-agent-babysitter hook", () => {
])
const hook = createUnstableAgentBabysitterHook(ctx, {
backgroundManager,
config: { enabled: true, timeout_ms: 120000 },
config: { timeout_ms: 120000 },
})
// #when
@ -160,7 +160,7 @@ describe("unstable-agent-babysitter hook", () => {
const backgroundManager = createBackgroundManager([createTask()])
const hook = createUnstableAgentBabysitterHook(ctx, {
backgroundManager,
config: { enabled: true, timeout_ms: 120000 },
config: { timeout_ms: 120000 },
})
const now = Date.now()
const originalNow = Date.now

View File

@ -8,7 +8,6 @@ const COOLDOWN_MS = 5 * 60 * 1000
const THINKING_SUMMARY_MAX_CHARS = 500
type BabysittingConfig = {
enabled?: boolean
timeout_ms?: number
}
@ -187,7 +186,6 @@ export function createUnstableAgentBabysitterHook(ctx: BabysitterContext, option
const eventHandler = async ({ event }: { event: { type: string; properties?: unknown } }) => {
if (event.type !== "session.idle") return
if (options.config?.enabled !== true) return
const props = event.properties as Record<string, unknown> | undefined
const sessionID = props?.sessionID as string | undefined

View File

@ -291,9 +291,8 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => {
})
: null;
const unstableAgentBabysitter =
isHookEnabled("unstable-agent-babysitter") && pluginConfig.babysitting?.enabled === true
? createUnstableAgentBabysitterHook(
const unstableAgentBabysitter = isHookEnabled("unstable-agent-babysitter")
? createUnstableAgentBabysitterHook(
{
directory: ctx.directory,
client: {