active Automatic scheduler, orchestrator, forwarder, and sanity auto-heal actions are allowed.
idle Kick off a Jules enhancement round once the tracked repo is ready.
Request: not requested yet
Summary: Request an enhancement round for Stbmap/dev-manager when you want the scheduler to look for follow-up improvements.
Open issues / PRs / active enhancer sessions: 0 / 0 / 0
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.
2
1
11
1
89
4
9
0
Repo: Stbmap/dev-manager
Status: ok: scanned 3 repo(s), 613 items total (Stbmap/chatter=37, Stbmap/dev-manager=318, Stbmap/stbmap=258)
Status: ok: synced 246 Jules session(s) (0 imported, 2 updated)
Status: ok: issue_comment delivery b03f2b40-56e7-11f1-87a3-3057d8c66116 reconciled
Status: ok: no sanity issues detected
Status: error: drift detected: blocking: session 16359698397969157104 completed remotely (complete) but is still running locally
Status: ok: opened 1 self-improvement issue(s), reused 1 canonical self-improvement issue(s)
Status: ok: no expired memory entries (retention=180d)
Candidates: 2
Quietest / Noisiest: 2m (14255177093404844632) / 2m (6847035704594477147)
Total: 62
Split / Blocked / Launchable: 0 / 0 / 22
Total: 1
Proposed / Approved / Applied: 0 / 0 / 0
Total: 97
Active / Blocked / Failed / Completed: 0 / 15 / 0 / 56
Total: 250
Blocked / Allowed / Failed: 137 / 63 / 0
Main-first drift: 12
escalating Why the manager is waiting, launching, escalating, or refusing work.
Next: resolve the operator-owned items before opening fresh work
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 |
|---|---|---|
| 3m ago | sanity_ok | ok: no sanity issues detected |
| 5m ago | sanity_ok | ok: auto-healed 3 issue(s): Stbmap/stbmap|pr|255 moved from blocked to ready because no active session exists; Stbmap/stbmap|pr|258 moved from blocked to ready because no active session exists; Stbmap/chatter|issue|5 moved from ready to in-progress because 1 active session(s) exist |
| 5m ago | sanity_auto_heal | Repaired 3 item(s). |
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 attempts to delete the remote Jules session, then stops local management and requeues the linked GitHub item when possible.
Click any session row to open its details here. The selection is remembered across auto-refreshes.
| Trace / ID / Item | State | Details | Actions |
|---|---|---|---|
|
Stbmap/chatter PR #37 14255177093404844632 |
running |
Scaffold Go/Postgres monorepo
Created: 4m ago
Last Active: 2m ago
Lease Remaining: in 2d 23h
|
|
|
Stbmap/chatter Issue #5 6847035704594477147 |
running |
[P0] Add migration runner and PostgreSQL connection layer
Created: 6m ago
Last Active: 2m ago
Lease Remaining: in 2d 23h
|
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...
Durable memory rows capture incidents, prompt changes, self-improvement notes, split plans, and other lessons the manager should remember across sessions. Rows now carry an expiry and a retention sweep prunes stale memory so prompts stay current.
Loading memory entries...
Goal plans turn broad work into ordered, reusable slices. Each row records the target, dependency graph, and the split/blocked/launchable disposition the manager derived before a worker starts.
| Time | Target | Goal | Disposition | Graph |
|---|---|---|---|---|
| 5m ago |
Stbmap/chatter goal-plan:Stbmap/chatter#37 |
Close PR #37 by validating the initial Go/Postgres monorepo scaffold from merged main, ensuring the health endpoint, development scripts, env example, starter UI, and architecture docs are coherent and buildable with no committed secrets. Plan: Scaffold Go/Postgres monorepo Do not split PR #37. This is ready closeout for a single scaffold PR, and splitting would duplicate review, CI validation, and merge ownership. Under the fat split policy, the cohesive unit is one owner validating and landing or returning the PR. |
launchable |
deps=0 history=0 children=0 ordered=1 |
| 6m ago |
Stbmap/chatter goal-plan:Stbmap/chatter#5 |
Add a production-safe Go/PostgreSQL database foundation: DATABASE_URL-based configuration without credential logging, context-aware connection and transaction helpers, a repeatable migration workflow from an empty database, initial timestamp/UUID conventions, tests or safe skips for absent test DB configuration, and README/operator documentation. Plan: [P0] Add migration runner and PostgreSQL connection layer Do not split under the current fat issue policy. Issue #5 is a cohesive database foundation slice: DATABASE_URL configuration, connection lifecycle, migrations, transaction helpers, timestamp conventions, tests, and docs all touch the same backend package and operator workflow. Splitting would create unnecessary sequencing and duplicated integration work. The only listed prior session is failed, so this can be relaunched as one broad Jules task from merged main. |
launchable |
deps=0 history=1 children=0 ordered=2 |
| 20m ago |
Stbmap/chatter goal-plan:Stbmap/chatter#4 |
Create the initial Chatter foundation: Go backend service, PostgreSQL-oriented configuration and migration structure, premium Liquid Glass frontend asset path, local scripts, .env.example, README, docs/architecture.md, and docs/product-vision.md so future work can clone, run, test, and extend the repo without stack ambiguity. Plan: [P0] Decide architecture and scaffold the Go/Postgres monorepo Keep issue #4 together under the fat split policy. The project layout, stack decision, minimal Go server, environment contract, scripts, README, and architecture/product docs are one cohesive foundation; splitting them would create unnecessary coordination risk and could leave later sessions with mismatched assumptions. The existing session is failed, so there is no live ownership conflict. |
launchable |
deps=0 history=1 children=0 ordered=2 |
| 57m ago |
Stbmap/chatter goal-plan:Stbmap/chatter#34 |
Complete issue #34 in one PR against Stbmap/chatter: audit and improve request feedback, agent placeholders, streaming layout stability, auto-scroll behavior, keyboard navigation, visible focus states, contrast/status affordances, reduced-motion behavior, and accessibility documentation without removing the premium Liquid Glass UI language. Plan: [P4] Performance and accessibility pass for premium fast UI Under the current fat issue split policy, issue #34 should stay together. The work is broad but cohesive: performance, streaming smoothness, keyboard accessibility, focus states, reduced motion, and documentation all touch the same UI flows and should be validated in one pass to avoid duplicated QA and conflicting behavior changes. |
launchable |
deps=0 history=0 children=0 ordered=1 |
| 1h 4m ago |
Stbmap/chatter goal-plan:Stbmap/chatter#36 |
Produce docs/future-tools-retrieval.md for Stbmap/chatter that explicitly separates MVP non-goals from future capabilities, stays aligned with the Go server + PostgreSQL architecture and premium Liquid Glass UI direction, and lists ordered follow-up implementation issues that can be launched after the permission and audit model is agreed. Plan: [Future] Add tools, retrieval, attachments, and citations architecture plan Keep issue #36 as one cohesive planning task under the fat split policy. The scope is broad but intentionally architectural, and splitting attachments, retrieval, tools, citations, permissions, audit logging, provider changes, and security into separate planning issues would create overlapping design decisions and coordination risk before implementation begins. |
launchable |
deps=0 history=0 children=0 ordered=1 |
Split plans are the operator-approved workflow that turns a broad item into linked child GitHub issues. Approve a proposal, apply it to create the child issues, or request a regeneration if the slice set needs another pass.
| Time | Target | State | Parent | Children | Summary | Actions |
|---|---|---|---|---|---|---|
| 1d 11h ago |
Stbmap/dev-manager Stbmap/dev-manager#244 issue_split:Stbmap/dev-manager#244 |
rejected | split_rejected |
|
Prove from merged main that the manager can survive a supervised multi-cycle workload window, capture incident-grade evidence, and stop deterministically when drift, duplicate work, stale leases, repeated recoveries, or manual intervention appear. The issue is too broad for one fresh worker because it mixes three separable concerns while repo guidance still says keep the manager supervised, not unattended: a long-running driver, durable soak evidence, and deterministic stop conditions. Rejected: 1d 11h ago |
|
Durable handoff rows record role transitions such as planner to implementer, implementer to reviewer, and orchestrator escalations. This is the visible multi-agent ownership trail.
Loading handoffs...
Durable role-owned tasks are derived from handoffs and tracked separately from raw GitHub items. They keep planner, implementer, reviewer, repairer, and reconciler work visible across retries and scheduler restarts.
By status:
By role/state:
| Task | Role / Status | Target | Chain | Updated |
|---|---|---|---|---|
|
agent-task:stbmap/stbmap:github_item:Stbmap/stbmap#258:repairer handoff:pr_conflict:implementer->repairer:17070392242104019605:Stbmap/stbmap#258 |
repairer
blocked
1 active session(s) already exist for Stbmap/stbmap#258
|
Stbmap/stbmap github_item Stbmap/stbmap#258 |
chain: handoff:pr_conflict:implementer->repairer:17070392242104019605:Stbmap/stbmap#258
origin: handoff:pr_conflict:implementer->repairer:17070392242104019605:Stbmap/stbmap#258
session: 17070392242104019605
|
29m ago |
|
agent-task:stbmap/stbmap:github_item:Stbmap/stbmap#255:repairer handoff:pr_conflict:implementer->repairer:12514038694284651855:Stbmap/stbmap#255 |
repairer
blocked
1 active session(s) already exist for Stbmap/stbmap#255
|
Stbmap/stbmap github_item Stbmap/stbmap#255 |
chain: handoff:pr_conflict:implementer->repairer:12514038694284651855:Stbmap/stbmap#255
origin: handoff:pr_conflict:implementer->repairer:12514038694284651855:Stbmap/stbmap#255
session: 12514038694284651855
|
2h 8m ago |
|
agent-task:stbmap/dev-manager:github_item:Stbmap/dev-manager#291:repairer admission:issue:Stbmap/dev-manager#291:repairer |
repairer
blocked
blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/dev-manager
|
Stbmap/dev-manager github_item Stbmap/dev-manager#291 |
chain: admission:issue:Stbmap/dev-manager#291:repairer
origin: admission:issue:Stbmap/dev-manager#291:repairer
|
3h 56m ago |
|
agent-task:stbmap/dev-manager:github_item:Stbmap/dev-manager#262:repairer admission:issue:Stbmap/dev-manager#262:repairer |
repairer
blocked
blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/dev-manager
|
Stbmap/dev-manager github_item Stbmap/dev-manager#262 |
chain: admission:issue:Stbmap/dev-manager#262:repairer
origin: admission:issue:Stbmap/dev-manager#262:repairer
|
3h 56m ago |
|
agent-task:stbmap/dev-manager:github_item:Stbmap/dev-manager#259:repairer admission:issue:Stbmap/dev-manager#259:repairer |
repairer
blocked
blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/dev-manager
|
Stbmap/dev-manager github_item Stbmap/dev-manager#259 |
chain: admission:issue:Stbmap/dev-manager#259:repairer
origin: admission:issue:Stbmap/dev-manager#259:repairer
|
3h 56m ago |
Imported work items from the tracked repository. These feed the scheduler.
Closed items are hidden by default.
520 closed item(s) are hidden. Use ?show_closed=1 to reveal them.
| Repo / Issue | Title | State | Updated | Link |
|---|---|---|---|---|
|
Stbmap/stbmap Issue #211 |
F-953 Shared Realtime Surface Density and Memory Budget | ready | just now | Open |
|
Stbmap/stbmap Issue #213 |
Shared shell flickers and reloads route content on layout-only changes | deferred | just now | Open |
|
Stbmap/stbmap Issue #214 |
Learning workspace initial-load query budget and heavy fixture proof | deferred | just now | Open |
|
Stbmap/stbmap Issue #215 |
Shared object interest manifest for refresh filtering | deferred | just now | Open |
|
Stbmap/stbmap Issue #216 |
Generated app mutation receipt can disappear after create/update refresh race | deferred | just now | Open |
|
Stbmap/stbmap Issue #217 |
Playwright view-only surface helpers must not drive mutation flows | deferred | just now | Open |
|
Stbmap/stbmap Issue #218 |
ObjectListQueryService needs unbounded-query diagnostics and budget enforcement | deferred | just now | Open |
|
Stbmap/stbmap Issue #219 |
Workspace load diagnostics for query strategy, candidate count, and projection time | deferred | just now | Open |
|
Stbmap/stbmap Issue #220 |
Learning Delivery staged graph loader should be rebuilt from authority roots | deferred | just now | Open |
|
Stbmap/stbmap Issue #221 |
Learning Catalog workspace should stop duplicating shared object list/projection handling | deferred | just now | Open |
|
Stbmap/stbmap Issue #222 |
Learning Path workspace needs bounded graph loading and refresh-interest filtering | deferred | just now | Open |
|
Stbmap/stbmap Issue #223 |
Learning Analytics workspace should use shared projections instead of eager model joins | deferred | just now | Open |
|
Stbmap/stbmap Issue #224 |
Auto-refresh coordinator should coalesce relevant events and avoid overlapping reloads | deferred | just now | Open |
|
Stbmap/stbmap Issue #225 |
Auto-refresh lifecycle test harness for tenant/model/object/debounce behavior | deferred | just now | Open |
|
Stbmap/stbmap Issue #226 |
Retain split-pane route children across width-only rebuilds | deferred | just now | Open |
|
Stbmap/stbmap Issue #227 |
Shared shell should keep stale content visible while background refresh revalidates | deferred | just now | Open |
|
Stbmap/stbmap Issue #228 |
Side-nav width changes must not recreate navigation context or reload active routes | deferred | just now | Open |
|
Stbmap/stbmap Issue #229 |
Split workspace drag should throttle layout setState storms | deferred | just now | Open |
|
Stbmap/stbmap Issue #230 |
Audit page-local FutureBuilder and controller patterns that reload on constraints changes | deferred | just now | Open |
|
Stbmap/stbmap Issue #231 |
ObjectRegistryStore needs memory retention budgets and tenant/workspace lifecycle pruning | deferred | just now | Open |
|
Stbmap/stbmap Issue #232 |
Display projection cache should avoid remapping unchanged snapshots on every list query | deferred | just now | Open |
|
Stbmap/stbmap Issue #233 |
Audit and eliminate unsafe ObjectListQuery limit:null callsites | deferred | just now | Open |
|
Stbmap/stbmap Issue #234 |
Harden objectId and inSet query planning as a shared object-kernel capability | deferred | just now | Open |
|
Stbmap/stbmap Issue #235 |
Query planner fallback full scans should emit support diagnostics above cardinality budget | deferred | just now | Open |
|
Stbmap/stbmap Issue #236 |
Learning workspace derived dependencies must register refresh interest | deferred | just now | Open |
|
Stbmap/stbmap Issue #237 |
Suppress self-originating object refreshes after explicit mutation reloads | deferred | just now | Open |
|
Stbmap/stbmap Issue #238 |
Define a shared mutation continuity contract for receipts, selection, and follow-up actions | deferred | just now | Open |
|
Stbmap/stbmap Issue #239 |
Workspace-selection Playwright helper fails when already inside the target workspace | deferred | just now | Open |
|
Stbmap/stbmap Issue #240 |
Hosted proof helpers need failure taxonomy for app failure vs harness mismatch | deferred | just now | Open |
|
Stbmap/stbmap Issue #241 |
Add browser memory telemetry smoke for Learning Delivery and Learning Catalog | deferred | just now | Open |
|
Stbmap/stbmap Issue #242 |
Add CPU utilization profiler scenario for learning workspace object-event refresh storms | deferred | just now | Open |
|
Stbmap/stbmap Issue #243 |
Object lifecycle events should expose mutation metadata needed for precise refresh interest | deferred | just now | Open |
|
Stbmap/stbmap Issue #244 |
Changed-field-aware refresh filtering for object-driven surfaces | deferred | just now | Open |
|
Stbmap/stbmap Issue #245 |
Leaf widgets should be able to register object interest upward through the shared tree | deferred | just now | Open |
|
Stbmap/stbmap Issue #246 |
Derive refresh interest from model, field, designation, and runtime contracts | deferred | just now | Open |
|
Stbmap/stbmap Issue #247 |
Collection surfaces need explicit insert/delete/archive invalidation policy | deferred | just now | Open |
|
Stbmap/stbmap Issue #248 |
Preserve selected record, scroll position, and form draft during background refresh | deferred | just now | Open |
|
Stbmap/stbmap Issue #249 |
Hosted resize and flicker proof harness with screenshots or video diff | deferred | just now | Open |
|
Stbmap/stbmap Issue #250 |
Workspace page dispose and subscription lifecycle audit | deferred | just now | Open |
|
Stbmap/stbmap Issue #251 |
Generated app detail-dialog tests should use visible-control-safe tapping | deferred | just now | Open |
|
Stbmap/stbmap Issue #252 |
Guard against the 'parallelize loading the world' performance anti-pattern | deferred | just now | Open |
|
Stbmap/stbmap Issue #256 |
Reduce duplicate starts for Stbmap/stbmap | needs_split | just now | Open |
|
Stbmap/dev-manager Issue #260 |
feature: dev-manager scheduled tasks | deferred | 1m ago | Open |
|
Stbmap/dev-manager Issue #262 |
feature: max dev cycle configuration knob | deferred | 1m ago | Open |
|
Stbmap/dev-manager Issue #244 |
Add a long-running soak harness for unattended autonomy | deferred | 1m ago | Open |
|
Stbmap/dev-manager Issue #243 |
Phase 5: Production Hardening and Unattended Autonomy | deferred | 1m ago | Open |
|
Stbmap/dev-manager Issue #259 |
Local agent should help when Jules clearly can't resolve issues, reviews etc. | deferred | 1m ago | Open |
|
Stbmap/dev-manager Issue #291 |
feature: autonomy readiness scorecard and 100% vision dashboard | deferred | 1m ago | Open |
|
Stbmap/dev-manager Issue #286 |
feature: PR-first closeout controller for merge, reject, and duplicate disposition | deferred | 1m ago | Open |
|
Stbmap/dev-manager Issue #294 |
feature: autonomy certification gate and unattended-mode promotion | deferred | 1m ago | Open |
|
Stbmap/dev-manager Issue #311 |
Fix unsafe obsolete/no-op PR close policy | deferred | 1m ago | Open |
|
Stbmap/dev-manager Issue #312 |
Use manager-owned callback IDs so Jules receives one complete initial prompt | deferred | 1m ago | Open |
|
Stbmap/dev-manager Issue #288 |
feature: production-ready webhook fast path and delivery health | deferred | 1m ago | Open |
|
Stbmap/dev-manager Issue #316 |
Add Codex-assisted generic intake workflow for operator requests | deferred | 1m ago | Open |
|
Stbmap/dev-manager Issue #317 |
Ensure JULES_MANAGER_TOKEN is available to Jules without chat-secret fallback | deferred | 1m ago | Open |
|
Stbmap/dev-manager Issue #318 |
Validate Jules clone/write access before launching repo work | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #6 |
[P1] Implement core PostgreSQL schema for users, agents, rooms, messages, runs, and turns | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #7 |
[P1] Seed default agents and recommended team templates | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #8 |
[P1] Implement email/password auth, JWT sessions, and current-user API | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #9 |
[P1] Add centralized room authorization and request validation | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #10 |
[P1] Implement agent registry API | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #11 |
[P1] Implement room management API with transactional room creation | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #12 |
[P1] Implement message history and message send API | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #13 |
[P2] Build authenticated WebSocket gateway with room-scoped subscriptions | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #14 |
[P2] Define and validate WebSocket event schemas | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #15 |
[P2] Implement provider-neutral LLM streaming interface for local Codex and Gemini CLIs | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #16 |
[P2] Implement prompt builder with system prompts, history windowing, and pruning | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #17 |
[P2] Implement routing policy engine for all_respond, round_robin, mention_only, and MC synthesis | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #18 |
[P2] Build central multi-agent orchestrator with streamed turns and durable run state | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #19 |
[P2] Implement run cancellation, failed-turn retry, and recovery semantics | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #20 |
[P3] Build premium auth screens and authenticated app shell | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #21 |
[P3] Create Liquid Glass design system primitives for the web UI | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #22 |
[P3] Build main chat layout: sidebar, room header, timeline, composer, and agent strip slots | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #23 |
[P3] Implement guided new-room creation with recommended agent teams | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #24 |
[P3] Build wow-effect Agent Team Strip with live execution states | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #25 |
[P3] Connect frontend to WebSocket streaming and deterministic message state | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #26 |
[P3] Implement composer, @mention autocomplete, and agent picker | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #27 |
[P3] Render markdown, code blocks, tables, links, copy actions, and safe rich responses | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #28 |
[P3] Build first-run onboarding, premium empty states, and starter prompts | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #29 |
[P3] Add conversation controls: cancel, retry, copy, collapse, jump-to-latest, and scroll pause | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #30 |
[P4] Apply API, WebSocket, markdown, prompt, and secret security hardening | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #31 |
[P4] Add structured logging, run traces, metrics, health, and readiness endpoints | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #32 |
[P4] Build automated test suite for auth, API, realtime, orchestration, and UI smoke flows | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #33 |
[P4] Add CI/CD checks and production deployment packaging | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #35 |
[Future] Add room summaries and approved memory foundation | hitl | 1m ago | Open |
|
Stbmap/chatter Issue #36 |
[Future] Add tools, retrieval, attachments, and citations architecture plan | hitl | 1m ago | Open |
|
Stbmap/chatter Issue #34 |
[P4] Performance and accessibility pass for premium fast UI | deferred | 1m ago | Open |
|
Stbmap/chatter Issue #5 |
[P0] Add migration runner and PostgreSQL connection layer | in-progress | 1m ago | Open |
|
Stbmap/chatter Issue #4 |
[P0] Decide architecture and scaffold the Go/Postgres monorepo | deferred | 1m ago | Open |
Imported pull requests from the tracked repository.
Closed items are hidden by default.
520 closed item(s) are hidden. Use ?show_closed=1 to reveal them.
| Repo / PR | Title | State | Updated | Link |
|---|---|---|---|---|
|
Stbmap/dev-manager PR #315 |
chore: sync workspace with main | deferred | just now | Open |
|
Stbmap/stbmap PR #255 |
feat: surface reload-cause telemetry in shared shell diagnostics | blocked | just now | Open |
|
Stbmap/stbmap PR #258 |
fix: correct telemetry duration tracking and safely inject diagnostics via Provider | blocked | just now | Open |
|
Stbmap/chatter PR #37 |
Scaffold Go/Postgres monorepo | 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.
Every repository policy save records a durable snapshot. Use restore to roll a repo back to a known-good policy version.
| Repo | Version | Status | Summary | Description | Updated | Actions |
|---|---|---|---|---|---|---|
| Stbmap/chatter | #1 | active | - | Enable Stbmap/chatter after bootstrap and successful repo preflight with explicit OAuth-scope waiver. | 2h 27m ago | |
| Stbmap/dev-manager | #1 | active | - | seeded from repo_configs | 3d 13h ago | |
| Stbmap/stbmap | #1 | active | - | seeded from repo_configs | 3d 13h ago |
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. The issue split policy lives here too, so you can keep Jules on fat issues unless you explicitly flip it to split.
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 | 34/unbounded | 157/unbounded | 1/unbounded | pass | - |
| Stbmap/chatter | inherited | 8/unbounded | 25/unbounded | 1/unbounded | pass | - |
| Stbmap/dev-manager | inherited | 19/unbounded | 84/unbounded | 0/unbounded | pass | - |
| Stbmap/stbmap | inherited | 7/unbounded | 24/unbounded | 0/unbounded | pass | - |
| Name | Limits (Concurrent/Daily) | Active |
|---|---|---|
|
work_1 ID: 490a1869-f32f-4189-83cc-85b4334e8fcd |
Conc: 10 Daily: 85 Used: 34 Remaining: 51 |
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"]
} |
4d 16h 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"]
} |
4d 16h 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"]
} |
4d 16h 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"]
} |
4d 16h 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"]
} |
4d 16h 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"]
} |
4d 16h 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"]
} |
3d 14h 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"]
} |
4d 16h 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"]
} |
4d 16h 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. |
4d 16h ago | |
| role: another-role | another-role | #1 | active | Desc | Prompt |
3d 15h 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. |
4d 16h ago | |
| role: implementer | implementer | #1 | active | Writes code to implement features and bugfixes. | You are an implementer. Write the code to solve the issue. |
1d 17h ago | |
| role: orchestrator | orchestrator | #1 | active | Orchestrates the workflow and triages issues. | You are an orchestrator. Route and plan the work. |
1d 17h ago | |
| role: reconciler | reconciler | #1 | active | Closes out finished work and reconciles the queue. | You are a reconciler. Tidy up, verify the final state, and close the loop. |
3d 1h ago | |
| role: repairer | repairer | #1 | active | Repairs blocked work and clears merge conflicts. | You are a repairer. Fix the blocker or conflict that is preventing the work from progressing. |
3d 1h 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. |
4d 16h ago | |
| role: reviewer | reviewer | #1 | active | Reviews code changes. | You are a reviewer. Review the code changes. |
1d 17h ago | |
| role: splitter | splitter | #1 | active | Splits broad work into smaller slices. | You are a splitter. Break broad work into smaller, actionable slices and hand the next slice to the right worker. |
3d 1h ago | |
| role: test-role | test-role | #2 | active | Updated Description | Updated Prompt |
3d 15h ago | |
| role: test-role | test-role | #1 | inactive | Test Description | Test Prompt |
3d 15h ago |
| Time | Actor | Event | Target | Details |
|---|---|---|---|---|
| just now | dev-manager-watcher | issue_stale_blocked_labels_cleared | github_item: Stbmap/stbmap#211 | {"reason": "no active session remains", "source": "stale issue sweep", "next_state": "ready", "item_number": 211, "labels_removed": ["blocked", "jules", "in-progress"], "previous_state": "claimed", "repo_full_name": "Stbmap/stbmap"} |
| just now | agent | agent_protocol_context | agent_protocol: context | {"questions": "0", "report_status": "scanning Stbmap/chatter, Stbmap/dev-manager, Stbmap/stbmap ok: synced 246 Jules session(s) (0 imported, 2 updated) ok: issue_comment delivery b03f2b40-56e7-11f1-87a3-3057d8c66116 reconciled ok: no sanity issues detected error: drift detected: blocking: session 16359698397969157104 completed remotely (complete) but is still running locally ok: opened 1 self-improvement issue(s), reused 1 canonical self-improvement issue(s) ok: no expired memory entries (retention=180d)", "allowed_actions": "4", "protocol_version": "1", "resume_checkpoint": "true", "sandbox_available": "true"} |
| just now | dev-manager-github-intake | github-item-state-sync | github_item: 51ae68bc-3412-49e8-a008-35d945655835 | {"state": "claimed", "reason": "state synced from deferred to claimed", "item_number": "211", "repo_full_name": "Stbmap/stbmap"} |
| just now | dev-manager-github-intake | github-item-state-sync | github_item: 1f50bf61-0704-49e8-bc10-ff77f615bed1 | {"state": "blocked", "reason": "state synced from deferred to blocked", "item_number": "255", "repo_full_name": "Stbmap/stbmap"} |
| just now | dev-manager-github-intake | github-item-state-sync | github_item: fe341541-99e1-4217-9fea-9b5ce3368894 | {"state": "blocked", "reason": "state synced from deferred to blocked", "item_number": "258", "repo_full_name": "Stbmap/stbmap"} |
| 1m ago | dev-manager-github-intake | github-item-state-sync | github_item: 5dccd8e4-eeeb-499c-8ff9-49c0a9e3a32b | {"state": "ready", "reason": "state synced from deferred to ready", "item_number": "315", "repo_full_name": "Stbmap/dev-manager"} |
| 1m ago | agent | agent_session_notify_completed | agent_protocol: 14255177093404844632 | {"body": "", "kind": "question", "state": "running", "title": "", "summary": "Jules has a question", "trace_id": "a8519b58-e24c-4ab0-bae5-9121bf7583c3", "source_id": "14255177093404844632", "session_id": "14255177093404844632", "codex_error": "exit status 127: /home/stbmap/.local/bin/gemini-work-b: line 4: exec: gemini-profile: not found", "source_type": "jules", "manager_status": "active", "repo_full_name": "Stbmap/chatter", "codex_forwarded": "false"} |
| 1m ago | dev-manager-gemini | provider_result | session: 14255177093404844632 | {"error": "exit status 127: /home/stbmap/.local/bin/gemini-work-b: line 4: exec: gemini-profile: not found", "action": "answer", "status": "failed", "provider": "gemini", "trace_id": "a8519b58-e24c-4ab0-bae5-9121bf7583c3", "item_type": "pr", "latency_ms": 3, "item_number": 37, "prompt_name": "responder", "fallback_from": "codex", "repo_full_name": "Stbmap/chatter", "prompt_version_id": "56c10c5f-469b-4aa4-bbd6-34f4d5e89cd9", "prompt_version_number": 1} |
| 1m ago | dev-manager-codex | provider_result | session: 14255177093404844632 | {"error": "signal: killed: OpenAI Codex v0.133.0\n--------\nworkdir: /home/stbmap/chatter\nmodel: gpt-5.4-mini\nprovider: openai\napproval: never\nsandbox: read-only\nreasoning effort: xhigh\nreasoning summaries: none\nsession id: 019e5698-364e-7792-8150-976120c5f092\n--------\nuser\nYou are the clarification responder for dev-manager.\n\nYour job is to answer Jules' question directly, briefly, and concretely.\nPrefer repository docs, tracked issue/PR context, and the current codebase.\nIf the answer depends on live manager state, query the manager API yourself and turn that into a direct answer for Jules.\nNever tell Jules to query localhost, the manager API, or any other local-only service.\nIf the docs do not cover the question, say exactly what is missing and the smallest next step.\nManager endpoint base URL: http://10.128.0.2:8080/api/admin\nUse the published manager endpoints below when you need live context or to notify the manager.\nClarification questions are super-priority: answer the worker directly and do not defer the response behind unrelated work.\nIf you need to notify the manager about a session question, blocker, progress update, enhancement idea, or completion, use POST https://devman.stbm.app/api/agent/notify/14255177093404844632 with kind plus optional title, body, trace_id, source_type, and source_id.\nIf you need more live context, use these manager endpoints:\n- GET /questions\n- GET /sessions\n- GET /sessions/{id}\n- GET /jules-sessions\n- GET /jules-sessions/{id}/activities\n- GET /repos\n- GET /github-items\n- GET /roles\n- GET /settings\n- POST https://devman.stbm.app/api/agent/notify/14255177093404844632\nRecent durable memory:\n- [goal_plan] chain=goal-plan:Stbmap/chatter#37 repo=Stbmap/chatter title=\"Scaffold Go/Postgres monorepo\" summary=\"Assign one session to close out Stbmap/chatter PR #37: review the Go/Postgres monorepo scaffold, confirm it satisfies Issue #4, run the relevant checks, and either merge it or leave concrete requested fixes.\" trace=a8519b58-e24c-4ab0-bae5-9121bf7583c3 expires=2026-11-19T20:45:17Z\n- [goal_plan] chain=goal-plan:Stbmap/chatter#5 repo=Stbmap/chatter title=\"[P0] Add migration runner and PostgreSQL connection layer\" summary=\"Route Stbmap/chatter#5 to a single Jules session. Implement the PostgreSQL connection layer and migration runner together, preserving reviewable SQL migrations and clear local/test database guidance.\" trace=74fbf24d-1923-4282-bc79-43259696c980 expires=2026-11-19T20:43:32Z\n- [goal_plan] chain=goal-plan:Stbmap/chatter#4 repo=Stbmap/chatter title=\"[P0] Decide architecture and scaffold the Go/Postgres monorepo\" summary=\"Route Stbmap/chatter#4 to a single Jules session from merged main to turn the empty repo into a buildable Go/Postgres monorepo scaffold with documented architecture, local dev workflow, health endpoint, starter web assets, and no committed secrets.\" trace=586e6233-1f6f-46cf-92ee-51536259c5ad expires=2026-11-19T20:30:10Z\nUse these memories only when they are relevant to the current task; otherwise ignore them.\nWorking repo path: /home/stbmap/chatter\nAnswer format: return only the text that should be sent back to Jules, with no fences or preamble.\nClarification request:\n- session_id: 14255177093404844632\n- repo_full_name: Stbmap/chatter\n- item: pr #37\n- kind: question\n- title: Scaffold Go/Postgres monorepo\n- state: awaiting_clarification\n- tracked_item_body: This PR scaffolds the initial Go/Postgres monorepo structure for Chatter as described in Issue #4.\n\nIt sets up the directory layout, development scripts, Go web server with a `/health` endpoint, `.env.example`, architectural documentation, and a lightweight placeholder UI for the Apple Liquid Glass design language.\n\n---\n*PR created automatically by Jules for task [16359698397969157104](https://jules.google.com/task/16359698397969157104) started by @aimanatta*\n- pause_reason: Jules has a question\n- question: Jules has a question\n- orchestrator_reason: session-scoped clarification notification from Jules\n- recovery_playbook: awaiting_clarification\nwarning: Codex could not find bubblewrap on PATH. Install bubblewrap with your OS package manager. See the sandbox prerequisites: https://developers.openai.com/codex/concepts/sandboxing#prerequisites. Codex will use the bundled bubblewrap in the meantime.\nweb search: \nweb search: \nweb search: \nweb search: https://example.com/\nweb search: \nweb search: \nweb search: \nweb search: \nweb search: \nweb search: site:devman.stbm.app/api/admin/questions devman\nweb search: \nweb search: devman.stbm.app admin api questions sessions\nweb search: \nweb search: \nweb search: \nweb search: \nweb search: \nweb search: \"Scaffold Go/Postgres monorepo\" \"Stbmap/chatter\"\nweb search: \nweb search: devman.stbm.app\nweb search: \nweb search: \"10.128.0.2:8080/api/admin/questions\"\nweb search: \nweb search: \nweb search: \nweb search: \"/api/admin/questions\"\nweb search: \nweb search: \nweb search: \nweb search: site:stbm.app \"api/admin\"\nweb search: \nweb search: \"devman.stbm.app\"\nweb search: \nweb search: \nweb search: \nweb search: \"Stbmap/chatter\" Go Postgres monorepo issue 4\nweb search: \nweb search: \nweb search: \nweb search: \nweb search: \nweb search: \nweb search: \nweb search: site:devman.stbm.app api admin questions sessions\nweb search: \nweb search: \"https://devman.stbm.app/api/admin/questions\"\nweb search: \nweb search: \"stbm.app\" \"api/admin/questions\"", "model": "gpt-5.4-mini", "action": "answer", "status": "failed", "provider": "codex", "trace_id": "a8519b58-e24c-4ab0-bae5-9121bf7583c3", "item_type": "pr", "latency_ms": 90008, "item_number": 37, "prompt_name": "responder", "repo_full_name": "Stbmap/chatter", "prompt_version_id": "56c10c5f-469b-4aa4-bbd6-34f4d5e89cd9", "prompt_version_number": 1} |
| 2m ago | agent | agent_session_notify_requested | agent_protocol: 14255177093404844632 | {"body": "", "kind": "question", "title": "", "summary": "Jules has a question", "trace_id": "a8519b58-e24c-4ab0-bae5-9121bf7583c3", "source_id": "14255177093404844632", "session_id": "14255177093404844632", "source_type": "jules", "repo_full_name": "Stbmap/chatter"} |
| 3m ago | dev-manager-sanity | sanity_ok | manager: sanity | {"status": "ok: no sanity issues detected", "repairs": [], "findings": []} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#33 | {"item_number": 33, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#32 | {"item_number": 32, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#31 | {"item_number": 31, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#30 | {"item_number": 30, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#29 | {"item_number": 29, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#28 | {"item_number": 28, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#27 | {"item_number": 27, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#26 | {"item_number": 26, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#25 | {"item_number": 25, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#24 | {"item_number": 24, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#23 | {"item_number": 23, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#22 | {"item_number": 22, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#21 | {"item_number": 21, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#20 | {"item_number": 20, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#19 | {"item_number": 19, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#18 | {"item_number": 18, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#17 | {"item_number": 17, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#16 | {"item_number": 16, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#15 | {"item_number": 15, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#14 | {"item_number": 14, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#13 | {"item_number": 13, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#12 | {"item_number": 12, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#11 | {"item_number": 11, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#10 | {"item_number": 10, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#9 | {"item_number": 9, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#8 | {"item_number": 8, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 4m ago | scheduler | github_item_expired_deferral_released | github_item: Stbmap/chatter#7 | {"item_number": 7, "repo_full_name": "Stbmap/chatter", "previous_reason": "blocked_by_repo_issue_concurrency: 1 active issue session(s) meets limit 1 for Stbmap/chatter"} |
| 5m ago | scheduler | goal_plan_recorded | github_item: Stbmap/chatter#37 | {"goal": "Close PR #37 by validating the initial Go/Postgres monorepo scaffold from merged main, ensuring the health endpoint, development scripts, env example, starter UI, and architecture docs are coherent and buildable with no committed secrets.", "reason": "Do not split PR #37. This is ready closeout for a single scaffold PR, and splitting would duplicate review, CI validation, and merge ownership. Under the fat split policy, the cohesive unit is one owner validating and landing or returning the PR.", "summary": "Assign one session to close out Stbmap/chatter PR #37: review the Go/Postgres monorepo scaffold, confirm it satisfies Issue #4, run the relevant checks, and either merge it or leave concrete requested fixes.", "repo_policy": "", "should_split": false, "verification": ["Confirm the PR branch is current enough against main or can be cleanly merged.", "Run the repository's documented build/test/lint checks, including Go tests if present.", "Start the local server and verify /health returns a successful response.", "Review .env.example and docs for usable local setup guidance and absence of secrets.", "Check that scaffolded directories, scripts, and placeholder UI match the architecture described for Issue #4."], "admission_reason": "PR #37 is ready closeout work and no active or owned session is listed for this PR or branch; durable issue memory is historical, not live ownership.", "split_suppressed": false, "dependency_reason": "", "split_recommended": false, "issue_split_policy": "fat"} |
| 5m ago | dev-manager-codex | provider_result | github_item: Stbmap/chatter#37 | {"model": "gpt-5.5", "action": "issue_split", "status": "success", "provider": "codex", "item_type": "pr", "latency_ms": 16945, "item_number": 37, "prompt_name": "issue_split", "repo_full_name": "Stbmap/chatter"} |
| 5m ago | dev-manager-sanity | sanity_ok | manager: sanity | {"status": "ok: auto-healed 3 issue(s): Stbmap/stbmap|pr|255 moved from blocked to ready because no active session exists; Stbmap/stbmap|pr|258 moved from blocked to ready because no active session exists; Stbmap/chatter|issue|5 moved from ready to in-progress because 1 active session(s) exist", "repairs": ["Stbmap/stbmap|pr|255 moved from blocked to ready because no active session exists", "Stbmap/stbmap|pr|258 moved from blocked to ready because no active session exists", "Stbmap/chatter|issue|5 moved from ready to in-progress because 1 active session(s) exist"], "findings": []} |
| 5m ago | dev-manager-sanity | sanity_auto_heal | manager: sanity | {"status": "ok: auto-healed 3 issue(s): Stbmap/stbmap|pr|255 moved from blocked to ready because no active session exists; Stbmap/stbmap|pr|258 moved from blocked to ready because no active session exists; Stbmap/chatter|issue|5 moved from ready to in-progress because 1 active session(s) exist", "repairs": ["Stbmap/stbmap|pr|255 moved from blocked to ready because no active session exists", "Stbmap/stbmap|pr|258 moved from blocked to ready because no active session exists", "Stbmap/chatter|issue|5 moved from ready to in-progress because 1 active session(s) exist"], "remaining_findings": []} |
| 5m ago | dev-manager-codex | provider_result | github_item: Stbmap/chatter#37 | {"model": "gpt-5.5", "action": "admission", "status": "success", "provider": "codex", "item_type": "pr", "latency_ms": 26023, "item_number": 37, "prompt_name": "admission", "repo_full_name": "Stbmap/chatter", "prompt_version_id": "11aac04d-7598-4ef2-9ea7-53be951f00c1", "prompt_version_number": 1} |
| 5m ago | dev-manager-watcher | issue_stale_blocked_labels_cleared | github_item: Stbmap/stbmap#211 | {"reason": "no active session remains", "source": "stale issue sweep", "next_state": "ready", "item_number": 211, "labels_removed": ["blocked", "jules", "in-progress"], "previous_state": "claimed", "repo_full_name": "Stbmap/stbmap"} |
| 6m ago | dev-manager-github-intake | github-item-state-sync | github_item: 51ae68bc-3412-49e8-a008-35d945655835 | {"state": "claimed", "reason": "state synced from deferred to claimed", "item_number": "211", "repo_full_name": "Stbmap/stbmap"} |
| 6m ago | dev-manager-github-intake | github-item-state-sync | github_item: 1f50bf61-0704-49e8-bc10-ff77f615bed1 | {"state": "blocked", "reason": "state synced from deferred to blocked", "item_number": "255", "repo_full_name": "Stbmap/stbmap"} |
| 6m ago | dev-manager-github-intake | github-item-state-sync | github_item: fe341541-99e1-4217-9fea-9b5ce3368894 | {"state": "blocked", "reason": "state synced from deferred to blocked", "item_number": "258", "repo_full_name": "Stbmap/stbmap"} |
| 6m ago | dev-manager-github-intake | github-item-state-sync | github_item: 5dccd8e4-eeeb-499c-8ff9-49c0a9e3a32b | {"state": "ready", "reason": "state synced from deferred to ready", "item_number": "315", "repo_full_name": "Stbmap/dev-manager"} |
| 6m ago | dev-manager-github-intake | github-item-imported | github_item: 837d70b0-78e9-4f1a-94e1-d0e1a7fdaaee | {"state": "ready", "reason": "imported from GitHub", "item_number": "37", "repo_full_name": "Stbmap/chatter"} |
| 6m ago | dev-manager-watcher | issue_stale_blocked_labels_cleared | github_item: Stbmap/chatter#5 | {"reason": "no active session remains", "source": "stale issue sweep", "next_state": "ready", "item_number": 5, "labels_removed": ["blocked", "jules", "in-progress"], "previous_state": "in-progress", "repo_full_name": "Stbmap/chatter"} |
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/repo-policies - List repo policy snapshots and historyPOST /api/admin/repo-policies/{id}/rollback - Restore a repo policy snapshotGET /api/admin/events - Subscribe to manager change events as an SSE streamGET /api/agent/context - Fetch the read-only agent-to-manager context bundle with report, questions, resume checkpoint, and sandbox capabilitiesPOST /api/agent/verify - Ask the manager to run an ephemeral verify sandbox for a repo with the current safe profilePOST /api/agent/notify/{session_id} - Send a session-scoped Jules notification to the manager with kind, optional title/body, and trace metadataPOST /api/agent/notify - Record an operator inbox item for human follow-upGET /api/admin/handoffs - Browse durable agent handoff rows by repo, roles, trace, session, item number, or free text queryGET /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 dashboardGET /api/admin/memory - Browse durable manager memory entries by repo, kind, trace, session, item number, or free text queryPOST /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 - Delete the remote Jules session when possible, 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 versionGET /api/admin/repo-policies - List repo policy versions and snapshotsPOST /api/admin/repo-policies/{id}/rollback - Restore a prior repo policy snapshot