active Automatic scheduler, orchestrator, forwarder, and sanity auto-heal actions are allowed.
Welcome to the dev-manager orchestration cockpit. It auto-refreshes, remembers your place, and keeps the state visible without manual reloads.
Listens to the manager event stream while that tab is open, without reloading the whole page.
The background Jules sync, scheduler, watcher, forwarder, and orchestrator loops are started in cmd/dev-manager/main.go and read their cadence from DB-backed runtime settings.
GitHub intake watches the tracked repository and imports open issues and pull requests into the queue before the scheduler starts sessions.
Clarification threads are exposed through the JSON API so Codex can read Jules questions and answer them directly without using the UI.
3
1
3
4
4
1
4
0
Repo: Stbmap/dev-manager
Status: ok: scanned 1 repo(s), 199 items total (Stbmap/dev-manager=199)
Status: ok: synced 138 Jules session(s)
Status: waiting for the first webhook delivery
Status: ok: no sanity issues detected
Status: ok: no drift detected
Status: ok: opened 1 self-improvement issue(s), skipped 1 already-tracked candidate(s)
This is the manager's self-check trail. Auto-heal only repairs safe queue drift and uses long thresholds before it pauses or requeues expired work.
| Time | Event | Summary |
|---|---|---|
| 1m ago | sanity_ok | ok: no sanity issues detected |
| 5m ago | sanity_ok | ok: no sanity issues detected |
| 9m ago | sanity_ok | ok: no sanity issues detected |
Sessions tracked by dev-manager in the local database. These are the normalized manager-owned rows the scheduler, watcher, and orchestrator actively manage end to end.
Pause keeps a session visible and held by the manager. Kill stops local management, requeues the linked GitHub item when possible, and may still leave the remote Jules session visible upstream because Jules does not expose a hard delete.
Click any session row to open its details here. The selection is remembered across auto-refreshes.
| Trace / ID / Item | State | Details | Actions |
|---|---|---|---|
|
Stbmap/dev-manager PR #198 18256727359863949835 |
running |
vision-analysis
Created: 1m ago
Lease Remaining: in 2d 23h
|
|
|
Stbmap/stbmap 15076266684516377113 |
awaiting_clarification |
Workspace Interface High Memory Usage and Performance Issues
Created: 3h 1m ago
Last Active: 2h 53m ago
|
|
|
Stbmap/stbmap 13632103742941612859 |
awaiting_clarification |
STBMAP Implementer Worker Protocol
Created: 4h 27m ago
Last Active: 4h 10m ago
|
Remote sessions pulled from the Jules API for any configured Jules accounts. This is the raw upstream mirror. The manager-owned queue lives in Local Sessions and uses normalized internal states for automation.
Loading remote Jules sessions...
First-class attention queue for Jules sessions that need a response, recovery nudge, or operator decision. This view listens to the manager event stream and refreshes only when something changes.
Loading sessions that need attention...
Single place for human decisions. This queue collects escalations, provider failures, blocked messages, and other items the manager cannot safely finish on its own.
Loading operator inbox items...
Paste a Jules web suggestion here when the upstream surface does not expose a clean API. Suggestions are tracked advisory work first, then they can be promoted to a GitHub issue, turned into a directive inbox item, or ignored as noise.
Loading suggestions...
Imported work items from the tracked repository. These feed the scheduler.
Closed items are hidden by default.
401 closed item(s) are hidden. Use ?show_closed=1 to reveal them.
| Repo / Issue | Title | State | Updated | Link |
|---|---|---|---|---|
|
Stbmap/dev-manager Issue #200 |
Tighten manager reconciliation after repeated sanity drift | ready | 1m ago | Open |
|
Stbmap/dev-manager Issue #195 |
Jules Suggestions Intake and Manual Relay | ready | 1m ago | Open |
|
Stbmap/dev-manager Issue #196 |
Multi-Repo Onboarding and Policy Routing | ready | 1m ago | Open |
|
Stbmap/dev-manager Issue #199 |
Phase 4: Test direct Jules-to-manager API access | ready | 1m ago | Open |
Imported pull requests from the tracked repository.
Closed items are hidden by default.
401 closed item(s) are hidden. Use ?show_closed=1 to reveal them.
| Repo / PR | Title | State | Updated | Link |
|---|---|---|---|---|
|
Stbmap/dev-manager PR #198 |
vision-analysis | in-progress | 1m ago | Open |
Manager-level secrets loaded at runtime.
Map each GitHub repository to a local checkout so intake can watch it and Codex can answer from the correct codebase. This is the seam that makes multi-repo orchestration work.
These DB-backed settings control the automatic loops and decision thresholds without code changes or restarts. Use Go duration strings like 30s, 5m, or 2h.
Budget thresholds live in runtime settings for global defaults and in each repository mapping for overrides. They control how much Jules and provider burn the manager will tolerate before it slows fresh launches.
| Scope | Policy | Jules | Codex | Gemini | Status | Blocking |
|---|---|---|---|---|---|---|
| global | global defaults | 12/unbounded | 28/unbounded | 0/unbounded | pass | - |
| Stbmap/dev-manager | inherited | 10/unbounded | 28/unbounded | 0/unbounded | pass | - |
| Stbmap/stbmap | inherited | 2/unbounded | 0/unbounded | 0/unbounded | pass | - |
| Name | Limits (Concurrent/Daily) | Active |
|---|---|---|
|
work_1 ID: 490a1869-f32f-4189-83cc-85b4334e8fcd |
Conc: 10 Daily: 85 Used: 12 Remaining: 73 |
Active Jules API Key: OK Last Used: never |
Roles describe the worker lanes the manager knows about. Updating a role now creates a new prompt version instead of overwriting the previous one.
Prompt versions are the durable source of truth for worker instructions and recovery playbooks. Use scope_type=role and scope_key=implementer/reviewer/orchestrator/responder/admission/completion_review for defaults, scope_type=repo plus a repo full name for repo overrides, or scope_type=playbook to manage named recovery playbooks.
| Scope | Prompt | Version | Status | Description | Content | Updated | Actions |
|---|---|---|---|---|---|---|---|
| playbook: global | awaiting_clarification | #1 | active | Clarification waiting path | {
"key": "awaiting_clarification",
"summary": "Answer or escalate a worker question with the smallest safe step.",
"audience": "responder",
"trigger_states": ["awaiting_clarification"],
"allowed_actions": ["answer", "escalate"],
"message_template": "This session is waiting on clarification. Answer the question directly from the repository docs and current codebase. If the docs do not cover it, say exactly what is missing and the smallest next step. Question: {{.Reason}}.",
"operator_note_template": "Clarification playbook selected for {{.SessionID}}.",
"stop_conditions": ["question answered", "escalated to human review"],
"evidence": ["clarification question present", "confidence available"]
} |
23h 21m ago | |
| playbook: global | blocked_merge | #1 | active | Merge blocker recovery | {
"key": "blocked_merge",
"summary": "Clear merge conflicts or report the exact blocker.",
"audience": "reviewer",
"trigger_states": ["blocked"],
"allowed_actions": ["nudge", "escalate"],
"message_template": "This session is blocked by merge or review state. Resolve the blocker directly now. If this is a merge conflict or behind-base PR, update from the base branch, resolve conflicts, rerun the relevant tests, and push an updated PR. If you still cannot proceed, report the exact blocker and the smallest next step.",
"operator_note_template": "Merge-block playbook selected for {{.ItemLabel}} because {{.Reason}}.",
"stop_conditions": ["blocker resolved", "human review required"],
"evidence": ["merge conflict", "branch protection", "base branch drift", "changes requested"]
} |
23h 21m ago | |
| playbook: global | duplicate_session | #1 | active | Duplicate session recovery | {
"key": "duplicate_session",
"summary": "Prevent duplicate work from spawning more quota burn.",
"audience": "operator",
"trigger_states": ["running", "blocked", "failed"],
"allowed_actions": ["escalate", "release"],
"message_template": "This session appears to duplicate another worker or a recently completed attempt. Stop new changes, keep the current evidence intact, and wait for manager reconciliation before starting more work.",
"operator_note_template": "Duplicate-session playbook selected for {{.ItemLabel}}.",
"stop_conditions": ["duplicate ownership resolved"],
"evidence": ["duplicate launch", "similar branch", "similar PR title", "same item already owned"]
} |
23h 21m ago | |
| playbook: global | failed_session | #1 | active | Failed session recovery | {
"key": "failed_session",
"summary": "Stop active work and surface the smallest clean recovery path.",
"audience": "operator",
"trigger_states": ["failed"],
"allowed_actions": ["escalate", "release"],
"message_template": "This session appears failed or unrecoverable. Stop active work, preserve the current evidence, and report the smallest clean recovery step for {{.ItemLabel}}.",
"operator_note_template": "Failed-session recovery selected for {{.ItemLabel}}.",
"stop_conditions": ["operator intervenes", "session is terminalized"],
"evidence": ["failed state", "stale lease", "missing remote activity"]
} |
23h 21m ago | |
| playbook: global | local_only_session | #1 | active | Local-only session recovery | {
"key": "local_only_session",
"summary": "Handle rows that exist locally without a reachable remote worker.",
"audience": "operator",
"trigger_states": ["blocked", "failed"],
"allowed_actions": ["reassign", "escalate", "release"],
"message_template": "This session is local-only or missing its remote worker. Do not assume the work is progressing remotely. Reconcile ownership, then decide whether to reassign or release {{.ItemLabel}}.",
"operator_note_template": "Local-only recovery selected for {{.ItemLabel}}.",
"stop_conditions": ["remote owner restored", "item requeued", "item released"],
"evidence": ["no remote account", "missing Jules session", "stale lease with no activity"]
} |
23h 21m ago | |
| playbook: global | operator_paused_work | #1 | active | Operator paused work recovery | {
"key": "operator_paused_work",
"summary": "Respect operator pauses and wait for an explicit resume.",
"audience": "implementer",
"trigger_states": ["paused"],
"allowed_actions": ["noop", "escalate"],
"message_template": "This session is paused by operator policy. Do not start new work or self-reassign. Wait for an explicit resume or a fresh operator instruction.",
"operator_note_template": "Operator-paused work selected for {{.ItemLabel}}.",
"stop_conditions": ["operator resumes", "operator changes the pause reason"],
"evidence": ["operator pause reason", "manager pause reason", "sanity pause"]
} |
23h 21m ago | |
| playbook: global | quiet_running_session | #1 | active | Quiet running worker | {
"key": "quiet_running_session",
"summary": "Nudge a running worker that has gone quiet but is still expected to continue.",
"audience": "implementer",
"trigger_states": ["running", "starting"],
"allowed_actions": ["nudge"],
"message_template": "This session has been quiet for {{.QuietFor}}. Continue from the repository docs and current branch. If you are blocked, report the exact blocker and the smallest next step for {{.ItemLabel}}.",
"operator_note_template": "Quiet running worker nudged for {{.ItemLabel}} after {{.QuietFor}}.",
"stop_conditions": ["worker responds", "state changes"],
"evidence": ["quiet_for >= nudge_after", "session still has an active owner"]
} |
23h 21m ago | |
| playbook: global | remote_only_session | #1 | active | Remote-only session recovery | {
"key": "remote_only_session",
"summary": "Handle sessions that exist remotely but are missing locally.",
"audience": "operator",
"trigger_states": ["blocked", "failed"],
"allowed_actions": ["escalate"],
"message_template": "This session appears to exist remotely without a matching local owner. Stop assuming local state is authoritative and wait for manager reconciliation before taking any more action.",
"operator_note_template": "Remote-only recovery selected for {{.SessionID}}.",
"stop_conditions": ["local mirror reconciled"],
"evidence": ["remote session missing local row", "mirror drift", "unmatched remote activity"]
} |
23h 21m ago | |
| playbook: global | stale_lease | #1 | active | Stale lease recovery | {
"key": "stale_lease",
"summary": "Reassign or release work that has exceeded its lease.",
"audience": "operator",
"trigger_states": ["running", "paused", "blocked", "awaiting_clarification"],
"allowed_actions": ["reassign", "escalate", "release"],
"message_template": "This session's lease looks stale. Confirm whether the worker is still actively making progress. If not, reassign or release the smallest work item possible and leave a clear trace for the next worker.",
"operator_note_template": "Stale-lease playbook selected for {{.ItemLabel}} after {{.QuietFor}}.",
"stop_conditions": ["lease refreshed", "work requeued", "operator decides to hold"],
"evidence": ["quiet_for beyond lease threshold", "lease expired", "worker not responding"]
} |
23h 21m ago | |
| role: admission | admission | #1 | active | Decides whether to start a new Jules session. | You are the orchestrator for dev-manager. Your job is to decide whether it is worth starting a fresh Jules session for a queued work item. Be patient. Avoid duplicate sessions. Prefer waiting when an existing worker is already handling the same issue or pull request. If the task is not clearly ready for a new worker, say so. If the task is clearly ready, say so and give the smallest useful reason. |
23h 47m ago | |
| role: completion_review | completion_review | #1 | active | Reviews terminal Jules sessions and reports whether the result looks trustworthy. | You are the orchestrator for dev-manager. Your job is to assess a Jules session that just reached a terminal state. Use the repository docs, current codebase, and manager context to produce a short completion review. Say whether the completion looks trustworthy and what the smallest next manager step should be. Be concrete, calm, and brief. |
23h 47m ago | |
| role: responder | responder | #1 | active | Answers clarification questions from Jules. | You are the clarification responder for dev-manager. Your job is to answer Jules' question directly, briefly, and concretely. Prefer repository docs, tracked issue/PR context, and the current codebase. If the answer depends on live manager state, query the manager API yourself and turn that into a direct answer for Jules. Never tell Jules to query localhost, the manager API, or any other local-only service. If the docs do not cover the question, say exactly what is missing and the smallest next step. |
23h 47m ago |
| Time | Actor | Event | Target | Details |
|---|---|---|---|---|
| just now | dev-manager-orchestrator | orchestrator-action-deduped | session: 13632103742941612859 | {"action": "escalate", "trace_id": "7db48e8e-7051-4b16-bb79-d59098154b59", "session_id": "13632103742941612859", "operation_key": "orchestrator:escalate:13632103742941612859:7db48e8e-7051-4b16-bb79-d59098154b59"} |
| just now | dev-manager-orchestrator | orchestrator-action-deduped | session: 15076266684516377113 | {"action": "escalate", "trace_id": "495ccc62-9f60-4a70-9a94-f4aab71e292d", "session_id": "15076266684516377113", "operation_key": "orchestrator:escalate:15076266684516377113:495ccc62-9f60-4a70-9a94-f4aab71e292d"} |
| just now | dev-manager-orchestrator | orchestrator-action-deduped | session: 13632103742941612859 | {"action": "escalate", "trace_id": "7db48e8e-7051-4b16-bb79-d59098154b59", "session_id": "13632103742941612859", "operation_key": "orchestrator:escalate:13632103742941612859:7db48e8e-7051-4b16-bb79-d59098154b59"} |
| just now | dev-manager-orchestrator | orchestrator-action-deduped | session: 15076266684516377113 | {"action": "escalate", "trace_id": "495ccc62-9f60-4a70-9a94-f4aab71e292d", "session_id": "15076266684516377113", "operation_key": "orchestrator:escalate:15076266684516377113:495ccc62-9f60-4a70-9a94-f4aab71e292d"} |
| 1m ago | dev-manager-codex | provider_result | github_item: Stbmap/dev-manager#198 | {"action": "admission", "status": "success", "provider": "codex", "item_type": "pr", "latency_ms": 15303, "item_number": 198, "prompt_name": "admission", "repo_full_name": "Stbmap/dev-manager", "prompt_version_id": "11aac04d-7598-4ef2-9ea7-53be951f00c1", "prompt_version_number": 1} |
| 1m ago | dev-manager-improvement | self_improvement_item_mirrored | github_item: 386f8676-244c-46a2-b540-840c04d4ea36 | {"state": "ready", "trace_id": "self-improvement:sanity:manager:200", "item_number": 200, "repo_full_name": "Stbmap/dev-manager"} |
| 1m ago | dev-manager-improvement | self_improvement_issue_opened | manager: sanity:manager | {"count": 19, "title": "Tighten manager reconciliation after repeated sanity drift", "category": "sanity_drift", "evidence": ["sanity_warning at 2026-05-20T00:10:56Z: {\"status\": \"warn: 1 issue(s): Stbmap/dev-manager|pr|187 is blocked without any active session\", \"repairs\": [], \"findings\": [\"Stbmap/dev-manager|pr|187 is blocked without any active session\"]}", "sanity_warning at 2026-05-20T00:02:56Z: {\"status\": \"warn: 1 issue(s): Stbmap/dev-manager|issue|190 is blocked without any active session\", \"repairs\": [], \"findings\": [\"Stbmap/dev-manager|issue|190 is blocked without any active session\"]}", "sanity_warning at 2026-05-20T00:02:51Z: {\"status\": \"warn: 1 issue(s): Stbmap/dev-manager|issue|190 is blocked without any active session\", \"repairs\": [], \"findings\": [\"Stbmap/dev-manager|issue|190 is blocked without any active session\"]}", "sanity_warning at 2026-05-19T23:58:51Z: {\"status\": \"warn: 2 issue(s): Stbmap/dev-manager|issue|190 is blocked without any active session; Stbmap/dev-manager|issue|192 is blocked without any active session\", \"repairs\": [], \"findings\": [\"Stbmap/dev-manager|issue|190 is blocked without any active session\", \"Stbmap/dev-manager|issue|192 is blocked without any active session\"]}", "sanity_warning at 2026-05-19T23:56:51Z: {\"status\": \"warn: 1 issue(s): Stbmap/dev-manager|issue|190 is blocked without any active session\", \"repairs\": [], \"findings\": [\"Stbmap/dev-manager|issue|190 is blocked without any active session\"]}", "sanity_warning at 2026-05-19T23:52:15Z: {\"status\": \"warn: 2 issue(s): Stbmap/dev-manager|issue|190 is blocked without any active session; Stbmap/dev-manager|issue|191 is blocked without any active session\", \"repairs\": [], \"findings\": [\"Stbmap/dev-manager|issue|190 is blocked without any active session\", \"Stbmap/dev-manager|issue|191 is blocked without any active session\"]}", "sanity_warning at 2026-05-19T23:36:15Z: {\"status\": \"warn: 1 issue(s): Stbmap/dev-manager|issue|190 is blocked without any active session\", \"repairs\": [], \"findings\": [\"Stbmap/dev-manager|issue|190 is blocked without any active session\"]}", "sanity_warning at 2026-05-19T23:34:55Z: {\"status\": \"warn: 1 issue(s): Stbmap/dev-manager|issue|190 is blocked without any active session\", \"repairs\": [], \"findings\": [\"Stbmap/dev-manager|issue|190 is blocked without any active session\"]}", "sanity_warning at 2026-05-19T14:18:49Z: {\"status\": \"warn: 1 issue(s): Stbmap/dev-manager|issue|162 is blocked without any active session\", \"repairs\": [], \"findings\": [\"Stbmap/dev-manager|issue|162 is blocked without any active session\"]}", "sanity_warning at 2026-05-19T14:16:04Z: {\"status\": \"warn: 1 issue(s): Stbmap/dev-manager|issue|162 is blocked without any active session\", \"repairs\": [], \"findings\": [\"Stbmap/dev-manager|issue|162 is blocked without any active session\"]}", "sanity_warning at 2026-05-19T14:15:17Z: {\"status\": \"warn: 1 issue(s): Stbmap/dev-manager|issue|162 is blocked without any active session\", \"repairs\": [], \"findings\": [\"Stbmap/dev-manager|issue|162 is blocked without any active session\"]}", "sanity_warning at 2026-05-19T13:30:36Z: {\"status\": \"warn: 1 issue(s): Stbmap/dev-manager|issue|162 is blocked without any active session\", \"repairs\": [], \"findings\": [\"Stbmap/dev-manager|issue|162 is blocked without any active session\"]}", "sanity_warning at 2026-05-19T13:28:39Z: {\"status\": \"warn: 1 issue(s): Stbmap/dev-manager|issue|162 is blocked without any active session\", \"repairs\": [], \"findings\": [\"Stbmap/dev-manager|issue|162 is blocked without any active session\"]}", "sanity_warning at 2026-05-19T13:27:39Z: {\"status\": \"warn: 1 issue(s): Stbmap/dev-manager|issue|162 is blocked without any active session\", \"repairs\": [], \"findings\": [\"Stbmap/dev-manager|issue|162 is blocked without any active session\"]}", "sanity_warning at 2026-05-19T13:26:23Z: {\"status\": \"warn: 1 issue(s): Stbmap/dev-manager|issue|162 is blocked without any active session\", \"repairs\": [], \"findings\": [\"Stbmap/dev-manager|issue|162 is blocked without any active session\"]}", "sanity_warning at 2026-05-19T13:24:41Z: {\"status\": \"warn: 1 issue(s): Stbmap/dev-manager|issue|162 is blocked without any active session\", \"repairs\": [], \"findings\": [\"Stbmap/dev-manager|issue|162 is blocked without any active session\"]}", "sanity_warning at 2026-05-19T11:16:38Z: {\"status\": \"warn: 1 issue(s): Stbmap/dev-manager|issue|162 is blocked without any active session\", \"repairs\": [], \"findings\": [\"Stbmap/dev-manager|issue|162 is blocked without any active session\"]}", "sanity_warning at 2026-05-19T07:38:27Z: {\"status\": \"warn: 1 issue(s): Stbmap/dev-manager|issue|158 is blocked without any active session\", \"repairs\": [], \"findings\": [\"Stbmap/dev-manager|issue|158 is blocked without any active session\"]}", "sanity_warning at 2026-05-19T06:21:33Z: {\"status\": \"warn: 1 issue(s): Stbmap/dev-manager|issue|158 is blocked without any active session\", \"repairs\": [], \"findings\": [\"Stbmap/dev-manager|issue|158 is blocked without any active session\"]}"], "issue_url": "https://github.com/Stbmap/dev-manager/issues/200", "target_repo": "Stbmap/dev-manager", "issue_number": 200, "repo_full_name": "Stbmap/dev-manager"} |
| 1m ago | dev-manager-sanity | sanity_ok | manager: sanity | {"status": "ok: no sanity issues detected", "repairs": [], "findings": []} |
| 1m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 13632103742941612859 | {"action": "escalate", "trace_id": "7db48e8e-7051-4b16-bb79-d59098154b59", "session_id": "13632103742941612859", "operation_key": "orchestrator:escalate:13632103742941612859:7db48e8e-7051-4b16-bb79-d59098154b59"} |
| 1m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 15076266684516377113 | {"action": "escalate", "trace_id": "495ccc62-9f60-4a70-9a94-f4aab71e292d", "session_id": "15076266684516377113", "operation_key": "orchestrator:escalate:15076266684516377113:495ccc62-9f60-4a70-9a94-f4aab71e292d"} |
| 2m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 13632103742941612859 | {"action": "escalate", "trace_id": "7db48e8e-7051-4b16-bb79-d59098154b59", "session_id": "13632103742941612859", "operation_key": "orchestrator:escalate:13632103742941612859:7db48e8e-7051-4b16-bb79-d59098154b59"} |
| 2m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 15076266684516377113 | {"action": "escalate", "trace_id": "495ccc62-9f60-4a70-9a94-f4aab71e292d", "session_id": "15076266684516377113", "operation_key": "orchestrator:escalate:15076266684516377113:495ccc62-9f60-4a70-9a94-f4aab71e292d"} |
| 3m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 13632103742941612859 | {"action": "escalate", "trace_id": "7db48e8e-7051-4b16-bb79-d59098154b59", "session_id": "13632103742941612859", "operation_key": "orchestrator:escalate:13632103742941612859:7db48e8e-7051-4b16-bb79-d59098154b59"} |
| 3m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 15076266684516377113 | {"action": "escalate", "trace_id": "495ccc62-9f60-4a70-9a94-f4aab71e292d", "session_id": "15076266684516377113", "operation_key": "orchestrator:escalate:15076266684516377113:495ccc62-9f60-4a70-9a94-f4aab71e292d"} |
| 3m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 13632103742941612859 | {"action": "escalate", "trace_id": "7db48e8e-7051-4b16-bb79-d59098154b59", "session_id": "13632103742941612859", "operation_key": "orchestrator:escalate:13632103742941612859:7db48e8e-7051-4b16-bb79-d59098154b59"} |
| 3m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 15076266684516377113 | {"action": "escalate", "trace_id": "495ccc62-9f60-4a70-9a94-f4aab71e292d", "session_id": "15076266684516377113", "operation_key": "orchestrator:escalate:15076266684516377113:495ccc62-9f60-4a70-9a94-f4aab71e292d"} |
| 4m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 13632103742941612859 | {"action": "escalate", "trace_id": "7db48e8e-7051-4b16-bb79-d59098154b59", "session_id": "13632103742941612859", "operation_key": "orchestrator:escalate:13632103742941612859:7db48e8e-7051-4b16-bb79-d59098154b59"} |
| 4m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 15076266684516377113 | {"action": "escalate", "trace_id": "495ccc62-9f60-4a70-9a94-f4aab71e292d", "session_id": "15076266684516377113", "operation_key": "orchestrator:escalate:15076266684516377113:495ccc62-9f60-4a70-9a94-f4aab71e292d"} |
| 5m ago | dev-manager-sanity | sanity_ok | manager: sanity | {"status": "ok: no sanity issues detected", "repairs": [], "findings": []} |
| 5m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 13632103742941612859 | {"action": "escalate", "trace_id": "7db48e8e-7051-4b16-bb79-d59098154b59", "session_id": "13632103742941612859", "operation_key": "orchestrator:escalate:13632103742941612859:7db48e8e-7051-4b16-bb79-d59098154b59"} |
| 5m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 15076266684516377113 | {"action": "escalate", "trace_id": "495ccc62-9f60-4a70-9a94-f4aab71e292d", "session_id": "15076266684516377113", "operation_key": "orchestrator:escalate:15076266684516377113:495ccc62-9f60-4a70-9a94-f4aab71e292d"} |
| 5m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 13632103742941612859 | {"action": "escalate", "trace_id": "7db48e8e-7051-4b16-bb79-d59098154b59", "session_id": "13632103742941612859", "operation_key": "orchestrator:escalate:13632103742941612859:7db48e8e-7051-4b16-bb79-d59098154b59"} |
| 5m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 15076266684516377113 | {"action": "escalate", "trace_id": "495ccc62-9f60-4a70-9a94-f4aab71e292d", "session_id": "15076266684516377113", "operation_key": "orchestrator:escalate:15076266684516377113:495ccc62-9f60-4a70-9a94-f4aab71e292d"} |
| 6m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 13632103742941612859 | {"action": "escalate", "trace_id": "7db48e8e-7051-4b16-bb79-d59098154b59", "session_id": "13632103742941612859", "operation_key": "orchestrator:escalate:13632103742941612859:7db48e8e-7051-4b16-bb79-d59098154b59"} |
| 6m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 15076266684516377113 | {"action": "escalate", "trace_id": "495ccc62-9f60-4a70-9a94-f4aab71e292d", "session_id": "15076266684516377113", "operation_key": "orchestrator:escalate:15076266684516377113:495ccc62-9f60-4a70-9a94-f4aab71e292d"} |
| 7m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 13632103742941612859 | {"action": "escalate", "trace_id": "7db48e8e-7051-4b16-bb79-d59098154b59", "session_id": "13632103742941612859", "operation_key": "orchestrator:escalate:13632103742941612859:7db48e8e-7051-4b16-bb79-d59098154b59"} |
| 7m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 15076266684516377113 | {"action": "escalate", "trace_id": "495ccc62-9f60-4a70-9a94-f4aab71e292d", "session_id": "15076266684516377113", "operation_key": "orchestrator:escalate:15076266684516377113:495ccc62-9f60-4a70-9a94-f4aab71e292d"} |
| 7m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 13632103742941612859 | {"action": "escalate", "trace_id": "7db48e8e-7051-4b16-bb79-d59098154b59", "session_id": "13632103742941612859", "operation_key": "orchestrator:escalate:13632103742941612859:7db48e8e-7051-4b16-bb79-d59098154b59"} |
| 7m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 15076266684516377113 | {"action": "escalate", "trace_id": "495ccc62-9f60-4a70-9a94-f4aab71e292d", "session_id": "15076266684516377113", "operation_key": "orchestrator:escalate:15076266684516377113:495ccc62-9f60-4a70-9a94-f4aab71e292d"} |
| 8m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 13632103742941612859 | {"action": "escalate", "trace_id": "7db48e8e-7051-4b16-bb79-d59098154b59", "session_id": "13632103742941612859", "operation_key": "orchestrator:escalate:13632103742941612859:7db48e8e-7051-4b16-bb79-d59098154b59"} |
| 8m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 15076266684516377113 | {"action": "escalate", "trace_id": "495ccc62-9f60-4a70-9a94-f4aab71e292d", "session_id": "15076266684516377113", "operation_key": "orchestrator:escalate:15076266684516377113:495ccc62-9f60-4a70-9a94-f4aab71e292d"} |
| 9m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 13632103742941612859 | {"action": "escalate", "trace_id": "7db48e8e-7051-4b16-bb79-d59098154b59", "session_id": "13632103742941612859", "operation_key": "orchestrator:escalate:13632103742941612859:7db48e8e-7051-4b16-bb79-d59098154b59"} |
| 9m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 15076266684516377113 | {"action": "escalate", "trace_id": "495ccc62-9f60-4a70-9a94-f4aab71e292d", "session_id": "15076266684516377113", "operation_key": "orchestrator:escalate:15076266684516377113:495ccc62-9f60-4a70-9a94-f4aab71e292d"} |
| 9m ago | dev-manager-sanity | sanity_ok | manager: sanity | {"status": "ok: no sanity issues detected", "repairs": [], "findings": []} |
| 10m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 13632103742941612859 | {"action": "escalate", "trace_id": "7db48e8e-7051-4b16-bb79-d59098154b59", "session_id": "13632103742941612859", "operation_key": "orchestrator:escalate:13632103742941612859:7db48e8e-7051-4b16-bb79-d59098154b59"} |
| 10m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 15076266684516377113 | {"action": "escalate", "trace_id": "495ccc62-9f60-4a70-9a94-f4aab71e292d", "session_id": "15076266684516377113", "operation_key": "orchestrator:escalate:15076266684516377113:495ccc62-9f60-4a70-9a94-f4aab71e292d"} |
| 10m ago | dev-manager-orchestrator | orchestrator-message-deduped | session: 2073387915617532489 | {"action": "answer", "trace_id": "be01a53a-ba70-41eb-b764-da78f033846a", "session_id": "2073387915617532489", "idempotency_key": "2073387915617532489:answer:be01a53a-ba70-41eb-b764-da78f033846a:20d3880aaaeabb093e92b7e230fcc30966b1d1b59d49220fa43ae2958fafaef7"} |
| 10m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 13632103742941612859 | {"action": "escalate", "trace_id": "7db48e8e-7051-4b16-bb79-d59098154b59", "session_id": "13632103742941612859", "operation_key": "orchestrator:escalate:13632103742941612859:7db48e8e-7051-4b16-bb79-d59098154b59"} |
| 10m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 15076266684516377113 | {"action": "escalate", "trace_id": "495ccc62-9f60-4a70-9a94-f4aab71e292d", "session_id": "15076266684516377113", "operation_key": "orchestrator:escalate:15076266684516377113:495ccc62-9f60-4a70-9a94-f4aab71e292d"} |
| 10m ago | dev-manager-orchestrator | orchestrator-message-deduped | session: 2073387915617532489 | {"action": "answer", "trace_id": "be01a53a-ba70-41eb-b764-da78f033846a", "session_id": "2073387915617532489", "idempotency_key": "2073387915617532489:answer:be01a53a-ba70-41eb-b764-da78f033846a:20d3880aaaeabb093e92b7e230fcc30966b1d1b59d49220fa43ae2958fafaef7"} |
| 11m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 13632103742941612859 | {"action": "escalate", "trace_id": "7db48e8e-7051-4b16-bb79-d59098154b59", "session_id": "13632103742941612859", "operation_key": "orchestrator:escalate:13632103742941612859:7db48e8e-7051-4b16-bb79-d59098154b59"} |
| 11m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 15076266684516377113 | {"action": "escalate", "trace_id": "495ccc62-9f60-4a70-9a94-f4aab71e292d", "session_id": "15076266684516377113", "operation_key": "orchestrator:escalate:15076266684516377113:495ccc62-9f60-4a70-9a94-f4aab71e292d"} |
| 11m ago | dev-manager-orchestrator | orchestrator-message-deduped | session: 2073387915617532489 | {"action": "answer", "trace_id": "be01a53a-ba70-41eb-b764-da78f033846a", "session_id": "2073387915617532489", "idempotency_key": "2073387915617532489:answer:be01a53a-ba70-41eb-b764-da78f033846a:20d3880aaaeabb093e92b7e230fcc30966b1d1b59d49220fa43ae2958fafaef7"} |
| 12m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 13632103742941612859 | {"action": "escalate", "trace_id": "7db48e8e-7051-4b16-bb79-d59098154b59", "session_id": "13632103742941612859", "operation_key": "orchestrator:escalate:13632103742941612859:7db48e8e-7051-4b16-bb79-d59098154b59"} |
| 12m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 15076266684516377113 | {"action": "escalate", "trace_id": "495ccc62-9f60-4a70-9a94-f4aab71e292d", "session_id": "15076266684516377113", "operation_key": "orchestrator:escalate:15076266684516377113:495ccc62-9f60-4a70-9a94-f4aab71e292d"} |
| 12m ago | dev-manager-orchestrator | orchestrator-message-deduped | session: 2073387915617532489 | {"action": "answer", "trace_id": "be01a53a-ba70-41eb-b764-da78f033846a", "session_id": "2073387915617532489", "idempotency_key": "2073387915617532489:answer:be01a53a-ba70-41eb-b764-da78f033846a:20d3880aaaeabb093e92b7e230fcc30966b1d1b59d49220fa43ae2958fafaef7"} |
| 13m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 13632103742941612859 | {"action": "escalate", "trace_id": "7db48e8e-7051-4b16-bb79-d59098154b59", "session_id": "13632103742941612859", "operation_key": "orchestrator:escalate:13632103742941612859:7db48e8e-7051-4b16-bb79-d59098154b59"} |
| 13m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 15076266684516377113 | {"action": "escalate", "trace_id": "495ccc62-9f60-4a70-9a94-f4aab71e292d", "session_id": "15076266684516377113", "operation_key": "orchestrator:escalate:15076266684516377113:495ccc62-9f60-4a70-9a94-f4aab71e292d"} |
| 13m ago | dev-manager-orchestrator | orchestrator-message-deduped | session: 2073387915617532489 | {"action": "answer", "trace_id": "be01a53a-ba70-41eb-b764-da78f033846a", "session_id": "2073387915617532489", "idempotency_key": "2073387915617532489:answer:be01a53a-ba70-41eb-b764-da78f033846a:20d3880aaaeabb093e92b7e230fcc30966b1d1b59d49220fa43ae2958fafaef7"} |
| 13m ago | dev-manager-orchestrator | orchestrator-action-deduped | session: 13632103742941612859 | {"action": "escalate", "trace_id": "7db48e8e-7051-4b16-bb79-d59098154b59", "session_id": "13632103742941612859", "operation_key": "orchestrator:escalate:13632103742941612859:7db48e8e-7051-4b16-bb79-d59098154b59"} |
The manager exposes the following JSON API endpoints for orchestration tooling:
GET /api/admin/sessions - List active sessionsGET /api/admin/sessions/{id} - Get one local sessionGET /api/admin/jules-sessions - List remote Jules sessions visible to configured accountsGET /api/admin/jules-sessions/{id}/activities - Inspect a remote Jules session's activity streamGET /api/admin/accounts - List configured accountsGET /api/admin/repos - List repository-to-workspace mappings used for intake and CodexGET /api/admin/github-items - List imported GitHub issues and pull requestsGET /api/admin/audit - List recent audit eventsGET /api/admin/report - Generate the daily factory report as JSON or text with ?format=textGET /api/admin/resume-checkpoint - Fetch the latest operator resume checkpoint as JSON or text with ?format=textGET /api/admin/events - Subscribe to manager change events as an SSE streamGET /api/admin/settings - List runtime settingsPUT /api/admin/settings/{key} - Update a runtime setting via JSONGET /api/admin/decisions - Preview the orchestrator's next actionsGET /api/admin/questions - List sessions waiting on clarification, blocked, or paused with latest Jules activity, manager rationale, and routing confidenceGET /api/admin/inbox - List operator inbox items that still need attentionGET /api/admin/suggestions - List Jules suggestions that were manually relayed or imported from the dashboardPOST /api/admin/inbox/{id}/acknowledge - Mark an inbox item as acknowledgedPOST /api/admin/inbox/{id}/assign - Assign an inbox item to a person or teamPOST /api/admin/inbox/{id}/snooze - Snooze an inbox item until a future timePOST /api/admin/inbox/{id}/resolve - Resolve an inbox item and update the linked GitHub thread when possiblePOST /api/admin/suggestions - Relays a Jules suggestion into the manager ledgerPOST /api/admin/suggestions/{id}/promote - Promote a relayed suggestion into a GitHub issue or directivePOST /api/admin/suggestions/{id}/ignore - Ignore a relayed suggestion while keeping the historyPOST /api/admin/sessions/{id}/answer - Send a direct answer back to Jules for a sessionPOST /api/admin/sessions/{id}/pause - Pause a session locally without letting the remote Jules mirror overwrite itPOST /api/admin/sessions/{id}/resume - Resume a paused sessionPOST /api/admin/sessions/{id}/kill - Stop local management and requeue the linked GitHub item when possibleGET /api/admin/roles - List all agent rolesGET /api/admin/roles/{name} - Get details for a specific rolePUT /api/admin/roles/{name} - Update or create an agent roleGET /api/admin/prompts - List prompt versions and recovery playbooksPOST /api/admin/prompts - Create a new prompt version or recovery playbookPOST /api/admin/prompts/{id}/activate - Activate a prompt versionPOST /api/admin/prompts/{id}/rollback - Roll back to a previous prompt version