{"content":"[dev-journal] merge: feat/follow-up-tasks into main (22c365a9)\n\nThe Follow-Up Tasks (待跟进任务) feature is now merged into main with --no-ff (merge commit 22c365a9). Feature commits: a12cc5ee (main process), e3573226 (renderer), 6d1a5787 (docs).\n\nWhat shipped: bot-created sessions (auto_origin = longterm / orchestration / schedule) no longer live only in the folded Autonomous Tasks group — a parallel Follow-Up bucket now holds sessions that currently need a human decision. cowork_sessions gained follow_up_state / follow_up_source / follow_up_at via an idempotent additive migration. A new cerebellum decision module (src/main/cerebellum/sessionFollowUpGate.ts, one noul question 'needs_human_followup', threshold 0.5, 1.5s hard timeout, fail-open) re-judges every auto-origin session at each turn end, so a session moves dynamically between Autonomous and Follow-Up as it progresses; a human reply clears the cerebellum pending and the next turn end re-judges. Exact structured lanes complement the classifier: long-term waiting_owner cards land their bound sessions in Follow-Up live, and a pending AskUserQuestion on a folded session now persists 'ask_user' follow-up on the row. Manual context-menu moves are three-way, and 'manual' pins are sticky — the classifier never clears them. Renderer: new collapsible Follow-Up Tasks section above the Autonomous fold (collapsed by default, own storage key), counted in the local-tab badge, and heartbeat-origin turns now light the unread dot while a session is follow-up pending.\n\nMerge notes: one conflict in src/main/main.ts — the WS-A IPC registry workstream had replaced ipcMain.handle with registerIpcHandler, so the new cowork:session:setFollowUp handler was rewritten to the registry style; the channel was added to the gateway allowlist at tier P1 (mirroring foldOverride) and to docs/cloud-mobile/02-ipc-allowlist-v1.md (Cowork count 68 -> 69), and src/mobile/generated/ipc-contract.json was regenerated (413 methods) to keep the ipcContract hard gate green.\n\nVerification on main after merge: compile:electron clean; ipcContract + ipcRegistry + cerebellumSessionFollowUpGate + coworkSessionFollowUp + foldOverride/autoOrigin suites green; sessionAutoGrouping + coworkUnreadAutoOrigin 23/23. Known pre-existing failure unrelated to this work: tests/sessionViewGrouping.test.ts stale substring assertion (reproduced on the base commit). Worktree .worktrees/follow-up-tasks removed and feat/follow-up-tasks deleted after the merge. Follow-up tracked in the cerebellum handoff doc: the offline eval script scripts/cerebellum-session-follow-up-eval.mjs is still owed so the 0.5 threshold rests on measured data.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}