Menu
popagent
publicLatest change fa391bb84299efc38430196d6f7156e2c978d1b7 - Respect the autonomy pause in follow-ups and refresh scheduled workspaces by AkurAI Build
# Task-derived work Follow-up planning for scheduled runs and the read-only company-state tool. Task/schedule storage, retry, and lifecycle facts live in [AGENTS_AGENT.md](AGENTS_AGENT.md). ## Autonomous follow-up tasks `src/follow-ups.ts` turns a completed *scheduled* run into queued tasks when its schedule has `follow_ups=TRUE` (`followUps` in the API/UI, default off) **and automation is not paused**. Follow-ups are autonomous work, so `createFollowUps` refuses to plan or queue anything while `AgentTaskStore.automationStatus()` reports `paused` (autonomy disabled, idle improvement off, or no workspace selected) and logs `task.follow_ups.paused`. `createFollowUps` runs a tool-free planner agent with structured output (`followUpPlanSchema`, at most `MAX_FOLLOW_UPS`=5 items of title/prompt/ rationale/severity) on the schedule's model (routed when `policy/routing`), treats the report as untrusted data, and refuses deploy/promotion/DNS/secret/ outreach actions by instruction. The planner receives the registered workspaces and every open or week-old follow-up title across workspaces; each item may name a target `workspace` (name or id, validated, defaulting to the schedule's) because a task can only edit its own workspace's repository. Titles are normalized and compared with `AgentTaskStore.recentFollowUpPrompts()` (all workspaces) so a report does not re-file the same gap. Created tasks carry `follow_up_of_task_id`, are enqueued immediately, and are announced once in `#general`; tasks that are themselves follow-ups never plan further ones. Planner failures are logged (`task.follow_ups.failed`) and never affect the completed parent. Contracts: `src/follow-ups.test.ts`, `src/tasks.test.ts`. ## Live company state tool `companyStatus` (`src/tools/company-status.ts`) is a read-only, bounded snapshot of registered workspaces, tasks in a look-back window grouped by status with output excerpts, the Needs-attention bucket, schedules with their latest run, autonomy state, and recent evolution signals. It exists because workspace shell commands run in the network-disabled sandbox and cannot reach `./popagent` or the HTTP API. Seed migration `2026-08-16-company-status-tool-v1` grants it to the Orchistrator and tells it that its final task output is posted to `#general` by the platform. Contract: `src/tools/company-status.test.ts`.