Skip to content

Daemon and agents

Every managed agent uses the common ACP stdio client. Manifests in coordination/execution.yaml declare executable argv, tested version labels, environment references and capability requirements. Role bindings choose an agent, workspace, model/mode, permission policy, scheduling and concurrency. The execution contract specifies those fields.

The installed schema defines task queues and gates; .greatminds/schema.yaml is a generated mirror. greatminds project schema prints the effective schema. Runs pin schema/configuration identities so changed contracts cannot silently reinterpret an in-flight result.

Daemon ownership

greatminds coordd loads the execution contract and reconciles durable state. Queue-scheduled bindings receive concrete task revisions. Claims are persisted before launching the ACP process. A task cannot be independently claimed while an active run or unresolved domain operation holds it.

The ACP client negotiates capabilities, initializes or loads a compatible session, sends the compiled prompt, receives updates and handles supported callbacks. Required authentication or operator input is represented as a waiting state. Permission policy is explicit; missing permission is not automatic approval. Cancellation is bounded and can escalate to process-group termination.

The daemon and shared domain services own mechanically decidable operations:

  • Validate and reconcile typed result receipts, rejecting stale or wrong-run work.
  • Resume blocked tasks when declared dependencies and readiness gates permit it.
  • Record configured command execution and validate evidence freshness.
  • Schedule authorized stand operations and reconcile durable deployment records.
  • Recover recorded operations without replaying uncertain non-idempotent effects.

ACP prompt completion is distinct from a verified workflow transition. Completed turns without workflow progress are bounded by max_no_progress_turns (default 1), including across task metadata edits. Startup transport failures before prompt dispatch have bounded exponential retries under the execution contract. run retry RUN_ID permits an explicit further attempt after its cause is resolved. Startup delays are shared by account; provider rate-limit handling and broader resource/health policies remain tracked in the modernization plan.

Conversations and frontends

greatminds chat create BINDING_ID creates a daemon-owned conversation. chat talk handles user messages, streamed output and permission choices. Reconnecting reads durable events without replaying completed prompts. Task-bound conversations claim the actual task revision; standalone conversations do not create fake tasks.

Tmux hosts daemon/operator surfaces. VS Code and Cursor IDE targets generate ACP workspace process tasks, and the VS Code extension calls the same CLI interfaces. Native agent TUIs, synthetic keystrokes, sleeping-child signals and vendor-native app-server drivers are not execution transports in Greatminds.

Operator diagnosis

greatminds project execution
greatminds daemon doctor --json
greatminds agent status
greatminds run status
greatminds run events --follow
greatminds wake-check --json
greatminds watchdog

Configuration checks are static. Run observations distinguish authentication/input waits, lifecycle failures and process identity/liveness. A live PID alone does not demonstrate task progress. Dependency inspection uses the daemon's shared maintenance service and never moves files itself.

run pause stops new dispatch while allowing active runs to finish. Use explicit cancellation when active work must stop. Systemd supervision is optional; the runbook documents service installation, configured environment layering and updates. Runtime observations do not require a model turn or a cloud service.