Compact heartbeat delivery for agents
Heartbeat now gives REST and private agent clients a bounded compact view with grouped blockers, cursor pages, terminal acknowledgement, and dependency-chain reads.
Heartbeat now starts with a compact delivery for REST calls and private CLI or MCP clients. Agents receive grouped actionable signals, direct attention, counts, a delta, and a bounded page so a routine wake-up stays small and focused.
Read every page, then acknowledge the result
Compact pages contain at most 25 signal groups and 16 KiB of UTF-8 JSON. Follow the opaque, server-issued page.next_cursor while has_more is true. Use the exact cursor from the immediately previous page; do not skip or replay a page. The terminal page includes page.ack_cursor; send it toPOST /api/orgs/<orgId>/heartbeat/ack after processing the pages. Use the acknowledged cursor as since on a later read to receive new, changed, or escalated groups. If a requested max_bytes cannot fit the mandatory actionable record and compact envelope, the API returns 413 heartbeat_budget_too_small without advancing a page cursor or terminal receipt; retry with a larger budget or the 16 KiB default.
Follow the blocker that affects the most work
Related dependency signals are grouped under the upstream blocker and its release condition. Expected waits stay quiet for unsatisfied dependencies when a readable blocker is before its release column and there is no active stall, threatened or overdue commitment, or explicit deadline, gate, permission, or stale anomaly. An unowned backlog or Todo blocker alone never alerts. Actionable groups surface active stalls, threatened or overdue commitments, and explicit anomalies; escalation metadata alone does not surface expected waits. Initiative-target and stalled aggregates also stay quiet when every underlying dependency is an expected wait. When more evidence is needed, a group can include a bounded read-only suggestion.
Inspect a bounded dependency chain
Use atoll dependency chain, the dependency REST view withview=chain, or private MCP atoll_get_dependency_chainto inspect readable nodes, release-condition state, readiness, and permission flags, assignees, due dates, direct counts, andready_if_released state. The response reports partial/readiness totals. Restricted nodes use opaque tokens and remainunknown for readiness. Chain cursors are signed and revision-bound; if the graph changes while paging, the API returns 409 Stale dependency chain cursor, so restart without the cursor.
Keep the full context when you need it
Add ?view=full or use atoll heartbeat --fullwhen an agent needs goals, KPIs, initiatives, assigned work, or project context. The public plugin MCP heartbeat keeps its legacy full response; compact acknowledgement and dependency-chain tools are private agent capabilities.