feat: expose executor job observability

This commit is contained in:
john
2026-07-24 23:31:29 +08:00
parent bbb43f97a3
commit 396bb78200
18 changed files with 733 additions and 68 deletions
+29
View File
@@ -126,6 +126,27 @@ The persisted job is still a preview terminal state:
`status=blocked`, `reason=executor_dispatch_not_implemented`, and
`executionEnabled=false`. Phase 3.3 does not call Goosed, Aider, or OpenHands.
Phase 3.4 adds read-only Executor Job observability:
- `executor-job-event-v1` is stored in the separate PostgreSQL
`executor_job_events` table with a per-job sequence cursor;
- initial state and its first event are committed atomically, as are later
state transitions and their events;
- existing Phase 3.3 snapshots receive a deterministic
`executor_job_snapshot_imported` migration event;
- the versioned API exposes job state and cursor-paged events without exposing
task instructions, credentials, workspace paths, or executor SDK types;
- unsafe or oversized run identifiers are represented by a deterministic
SHA-256-derived opaque Executor Job id so PostgreSQL and URL identifiers stay
bounded;
- Shadow Run detail in memindadm joins Native state, LangGraph checkpoints,
Executor Job state, and Executor Job events;
- Canary readiness now requires both checkpoint and Executor Job storage to be
durable.
These endpoints are observational only. They do not add submit, retry, claim,
or adapter-dispatch operations.
The default memindadm mode remains `off`. Canary and Active routing are not
wired to the LangGraph executor in Phase 3. Native Agent Run remains the sole
executor in every mode.
@@ -173,6 +194,14 @@ GET /admin-api/orchestrator/canary-readiness
GET /admin-api/orchestrator/execution-plans
```
Selecting a Shadow Run in memindadm also reads the linked Executor Job through
the Orchestrator API:
```text
GET /v1/executor-jobs/:jobId
GET /v1/executor-jobs/:jobId/events?after=<cursor>&limit=<limit>
```
## Colima deployment
Colima is the recommended first container host on macOS because this service and