All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project follows SemVer where practical.
- Added
roboppi agents tasks supersedeandroboppi agents status get|setfor file-backed workflow status summaries and task replacement flow. - Extended the agents workflow DSL with seed task
id/depends_on/tags/requires_plan_approval, memberrole, and workerdefaultArgs. - Added TUI Timeline/Raw/Usage tabs with structured LLM log summaries, agent runtime usage stats, and dormant-agent visibility.
- Agent coordination now prunes stopped resident agents before reconcile, skips dormant members, restores mailbox body previews, and emits task-superseded activity events.
- The Codex CLI adapter now normalizes legacy sandbox/approval flags and merges task/profile
defaultArgsbefore dispatch.
- Clarified agent task claimability and dependency handling, including seeded dependency resolution and broader test coverage.
- Added verification around supervised IPC capability detection, TUI state/runtime accounting, and prompt-byte tracking in worker costs.
roboppi agents chatinteractive REPL,message reply, and resident-agent dispatch loops so teammates can keep working across the full workflow run.- Runner-owned lead inbox summaries at
_agents/inbox-summary.json, dynamic membership reconciliation, and new example workflows for live team reconfiguration. - TUI agent overview/chat surfaces for inline messaging and richer agent activity inspection.
- Renamed the swarm-facing CLI, docs, examples, tests, and runtime modules to the
agentssurface so the feature matches the shipped vocabulary. - Agent coordination now keeps long-lived LLM teammates resident and routes lead communication through mailbox-backed workflow services instead of prompt-level polling.
- Added reply-token handling and expanded unit/acceptance coverage around agent mailbox, broker, and TUI chat behavior.
- Agents v1: file-backed mailbox + task store for agent teams under
<context_dir>/_agents/. - New
roboppi agentsCLI (JSON-only stdout) for members, messaging, tasks, and housekeeping (incl.message recv --wait-ms, claim-token ack, stale recovery). - Workflow YAML
agents:config for defining members + seeding tasks; injectROBOPPI_AGENTS_*env vars into steps. - Workflow TUI Agents tab +
agent_*exec events for metadata-only activity visibility. - New worker capabilities
MAILBOXandTASKSto gate Agents tooling (Claude Code allowlist support). - Runner-owned
LeadInboxBrokerfor auto-consuming lead inbox and maintaining_agents/inbox-summary.json. - Dynamic membership via
roboppi agents members set|upsert|removewith coordinator reconcile loop.
- Agents conformance checklist is captured in
docs/spec/agents.mdand enforced by the self-dev Agents impl loop.
- Harden
roboppi agentstool-facing inputs with explicit path-safety validation and JSON-safe error output.
- Workflow Management Agent: optional supervisor hooks (
pre_step,pre_check,post_check,on_stall) that can annotate, skip, adjust timeouts, or abort workflows based on step state. - Management hook event isolation: management worker events are written to per-invocation JSONL under
context/_management/and do not leak into the main workflow telemetry/TUI stream. - Example self-dev workflow for iterating on the management-agent implementation review (
examples/workflow-management-agent-impl-review-loop.yaml) + bootstrap helper (scripts/self-dev/workflow-management-agent-impl-review/bootstrap.sh).
- Workflow parsing for
steps.<id>.managementis stricter: unknown keys are rejected, and step-level per-hook overrides are supported. - Claude Code adapter uses
--output-format stream-jsonautomatically for streaming tasks when configured for JSON output. - Worker tasks accept optional
varianthints (plumbed through to adapters that support it). - Embedded Pi SDK management engine is read-only in v1 (no command execution/edit/write tools) to preserve mechanism/policy separation.
- Branch verification no longer leaks ambient
BASE_BRANCH-related environment into isolated workflow runs.
- Supervised workflow TUI now streams worker events to
2: Logsin real time (stdout/stderr/progress/patch) via IPCjob_eventmessages.
- In supervised + TUI mode, stdout/stderr forwarding to
2: Logsis enabled by default; setROBOPPI_TUI_STREAM_STDIO=0to forward progress/patch only.
- Updated workflow/TUI docs and quickstarts.
- Allow subworkflow steps (
workflow:) to usecompletion_checkloops (max_iterations) to rerun child workflows until complete. - Add subworkflow event bubbling (
bubble_subworkflow_events,subworkflow_event_prefix) and deterministic export copying (exports_mode: merge|replace). - Improve workflow TUI: ANSI-aware wrapping in tabs, and
yto copy the visible detail tab to the clipboard (system clipboard commands or OSC52 fallback). - Add a runnable subworkflow loop example (
examples/subworkflow-loop.yaml,examples/subworkflow-loop-child.yaml).
- Completion checks accept decisions from
decision_fileJSON or text markers (PASS/FAIL/COMPLETE/INCOMPLETE), and can fall back to parsing worker stdout (JSON or marker). - Completion check instructions interpolate
$ROBOPPI_COMPLETION_CHECK_ID/${ROBOPPI_COMPLETION_CHECK_ID}to the active check id for robustness. scripts/agent-pr-loop/todo-check.shnow respectsROBOPPI_TODO_PATH/ROBOPPI_LOOP_DIRand prefers legacy.agentcore-loopwhen present.
- Stabilize OpenTUI workflow TUI rendering by sanitizing ANSI control sequences and using ANSI-aware width/truncation.
- Subworkflow steps via
workflow:: parent workflows can invoke child workflows, with isolated child context under_subworkflows/and optionalexportsto copy child artifacts into the parent context. - Recursion protection for subworkflow invocations (cycle detection + max nesting depth).
- CLI E2E coverage for subworkflow execution in three modes: direct, supervised (stdio transport), supervised (socket transport).
- Agent catalog loading is consolidated in
src/workflow/workflow-loader.tsand reused by CLI and daemon; child workflows inherit the parent's resolved catalog. make test/bun run testare scoped to this repo's test suites (test/unit,test/integration,tests/at) to avoid running vendored/reference tests.
- Harden workflow parsing and context path handling against path traversal and reserved-name collisions (step IDs and artifact names).
- See GitHub release notes.