This week we focused on making operations easier to run at scale — both by people and by AI agents. The headline: agents can now manage task dependencies, projects, milestones, teams, and schedules from chat, while imports, bulk edits and recurring runs make large-scale planning and repeatable work practical.
That means you can re-plan, import, and operate whole programmes from the chat layer or the UI with the same governance and audit trails you expect from OKiDO.
Task management becomes dependency-aware
You can now treat dependencies and large task sets as first-class, agent-manageable objects. Agents and the APIs can link and inspect dependencies, and dependency rules are enforced everywhere so blockers behave the same whether a person or an agent is working the task.
Dependency-aware execution keeps downstream work honest: agents cannot complete tasks that remain blocked, and when a blocker finishes the system automatically unblocks and notifies downstream owners.
Notable improvements:
Add, remove and inspect dependencies via chat or the API: add_task_dependency, remove_task_dependency, and list_task_dependencies (both directions). Dependency cycles are rejected.
Ask 'what is blocked right now?' with get_blocked_tasks — results are filterable by project or assignee.
Agent completions now trigger normal unblock propagation and notifications; agents are refused if they try to complete a task while blockers remain open.
Dependency lookups and unblock propagation are index-backed to stay fast as you scale.
We also expanded the task model and bulk tools so you can create, update and re-plan at scale:
create_task and update_task now handle parentTaskId (sub-tasks), start dates, hour estimates, milestone links, team assignment, labels on creation, descriptions and column/stage updates.
bulk_create_tasks accepts up to 100 tasks per call with per-item success/error responses; tasks accept an externalRef so re-runs skip duplicates.
bulk_update_tasks edits up to 100 tasks in one call (shift due dates, reassign, move stages) with per-item results.
find_by_external_ref lets you look up imported items by their import ID, and list_task_comments makes comment threads readable by agents.
Tasks can now be moved between teams via update_task/bulk_update_tasks (empty value clears the team).
update_task and bulk_update_tasks can replace a task's entire label set; labels that remain retain custom field values, and an empty list clears labels. delete_label removes an org-wide label everywhere it is used.
Project and milestone control from chat and the UI
Project and milestone workflows received full chat control plus clearer milestone visibility in the app. You can now create and maintain projects and milestones without switching to the UI, which is useful when you want an agent, scheduler or PM to make structural changes quickly and safely.
Highlights:
Manage milestones from chat: create_milestone, update_milestone and list_milestones. Each milestone now shows rollups of linked tasks (open / in progress / done / blocked).
Complete project setup from chat: update_project (status, dates, archive), reorder_stages, create_label / list_labels / remove_label, and delete_task (approval-gated) complement existing create flows.
The Milestone Tasks view in the app now shows the tasks that make up a milestone beneath the progress bar: a collapsible list with status, title, priority and direct links to tasks.
Re-planning is simpler with bulk_update_tasks, find_by_external_ref, and list_task_comments for agent visibility.
Milestone UX and scanability improvements:
Milestone Tasks and Subtasks lists show only direct children. Rows with nested children display a badge like "7/10" for open/total and a rolled-up time estimate that includes the subtree. Milestone overall progress still reflects the entire task tree at every depth.
Recurring runs, SOP templates, and team assignment
Automating recurring operational work is a core use case for OKiDO. This week we added first-class scheduling for SOP templates and made team assignment and checklists copy correctly into runs.
Key capabilities:
Recurring SOP runs: schedule templates to start automatically on a natural-language or cron schedule (every Monday at 11:00, weekdays, monthly, or a custom cron rule) in a timezone you choose. The scheduler creates each run within five minutes of its slot and names it after the template and date. Available on paid plans; a preview endpoint returns the next three occurrences before you save. Schedules can also be managed from AI chat with schedule_run.
Make any run recurring from the Start New Run dialog: type plain-English cadences like "Every day", "Every second Friday" or "Every month on the last workday", preview upcoming instances, set start/end windows, and spawn runs with the same name, priority and pre-filled variables.
SOP template steps can be assigned to a team (recommended default) on both create_sop_template and update_sop_step. Because scheduled runs copy a step's team, recurring runs now spawn with steps already owned by the right team rather than unassigned.
SOP steps can carry a checklist set from chat (create_sop_template and update_sop_step). Every run copies those checklist items into the run step as unchecked items.
Teams can also be managed from chat: invite_user (admin/owner only, sends the standard invite email), create_team / add_team_member / list_teams, add_project_member / remove_project_member / list_project_members (for private projects), update_team, remove_team_member and delete_team. Team deletion is refused if any tasks, SOP steps, projects or sprints still point at the team, so work is never silently orphaned.
Agent tools for end-to-end programme operation
We shipped a large set of agent tools so your AI can operate across projects with the same controls you use in the UI. Agents can now run and maintain programmes without the UI — read activity, check critical paths, manage sprints, follow tasks, attach files, restructure SOPs, cancel schedules and export projects.
New agent-facing tools include:
get_critical_path, get_milestone_report, get_project_activity, export_project
create_sprint / get_sprint / list_sprints / assign_task_to_sprint
watch_task / unwatch_task / list_watchers
update_task_comment / delete_task_comment
attach_link_to_task / attach_document_to_task
add_sop_step / remove_sop_step / reorder_sop_steps / update_sop_template
list_schedules / unschedule_run
get_api_limits and more.
Other agent-related improvements:
The list_users tool now includes organization ID on each row, so users who are members of several orgs no longer appear ambiguous.
Agents can now read task comment threads (list_task_comments) and edit or delete comments when authorised.
Polish and reliability improvements
A handful of UX and reliability issues were fixed so the surface feels consistent on mobile and for long lists.
Gantt on mobile now uses the full screen height instead of being squeezed down by the page header.
The Add to Milestone dialog no longer grows taller than the screen; it is a fixed-size dialog with a filter box at the top and a scrollable list so every milestone stays reachable. The picker also caps its height and keeps the action buttons in view.
Backend runner polling (high-frequency poll, heartbeat and claim endpoints) no longer floods normal logs: successful calls are logged at debug; any 4xx/5xx is still surfaced at warn/error.
Try the new capabilities and tell us where to go next
This release brings a significant step toward operating entire programmes — not just individual tasks — from the chat layer or the UI. If you run recurring SOPs, large imports, or cross-team programmes, try creating a recurring SOP template, import tasks with externalRef, or ask an agent to list blocked tasks and re-plan a sprint. Recurring runs require a paid plan; all other features are available according to your plan and permissions.
We welcome your feedback. Tell us how the new agent tools and scheduling work in your workflows and where you want more automation or controls next.