feat: persist blocked executor jobs
This commit is contained in:
@@ -43,7 +43,7 @@ Phase 2 adds:
|
||||
- a real LangGraph `StateGraph` service on the versioned HTTP boundary;
|
||||
- a PostgreSQL `PostgresSaver` checkpoint owner;
|
||||
- an explicitly non-durable MemorySaver option for tests and local debugging;
|
||||
- a `code-run-v1` observe-only graph with no executor or tool access;
|
||||
- a `code-run-v1` observe-only graph with no executor dispatch or tool access;
|
||||
- a Portal fire-and-forget shadow projection;
|
||||
- live health probing from memindadm;
|
||||
- a separate Colima/Compose deployment artifact.
|
||||
@@ -110,6 +110,22 @@ Phase 3.2 establishes the Executor Gateway boundary:
|
||||
`EXECUTOR_DISPATCH_IMPLEMENTED=false` is a code-level gate. Phase 3.2 can record
|
||||
blocked, idempotent job state but cannot invoke an adapter or launch a process.
|
||||
|
||||
Phase 3.3 makes that blocked state durable:
|
||||
|
||||
- the Orchestrator owns a PostgreSQL `executor_jobs` table beside its LangGraph
|
||||
checkpoint tables, under the same isolated schema and database credentials;
|
||||
- the `build_plan` node atomically creates one deterministic Executor Job per
|
||||
run and graph-node version;
|
||||
- retries recover the same job through its idempotency key, while a changed
|
||||
semantic request fails closed;
|
||||
- `/health` and `/ready` report and probe checkpoint and Executor Job storage
|
||||
independently;
|
||||
- memory mode keeps both stores explicitly non-durable.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
@@ -131,7 +147,7 @@ Supported modes:
|
||||
|
||||
## Local process
|
||||
|
||||
PostgreSQL is the default and required checkpoint backend:
|
||||
PostgreSQL is the default and required checkpoint and Executor Job backend:
|
||||
|
||||
```bash
|
||||
MEMIND_ORCHESTRATOR_DATABASE_URL='postgresql://...' \
|
||||
@@ -203,8 +219,8 @@ requires the repository release gates and a separately approved deployment.
|
||||
| `MEMIND_ORCHESTRATOR_PORT` | HTTP port | `8093` |
|
||||
| `MEMIND_ORCHESTRATOR_SERVICE_TOKEN` | Bearer token for `/v1/*` | empty |
|
||||
| `MEMIND_ORCHESTRATOR_CHECKPOINT_MODE` | `postgres` or explicit `memory` | `postgres` |
|
||||
| `MEMIND_ORCHESTRATOR_DATABASE_URL` | Dedicated checkpoint PostgreSQL URL | required |
|
||||
| `MEMIND_ORCHESTRATOR_DATABASE_SCHEMA` | Checkpoint schema | `memind_orchestrator` |
|
||||
| `MEMIND_ORCHESTRATOR_DATABASE_URL` | Dedicated Orchestrator PostgreSQL URL | required |
|
||||
| `MEMIND_ORCHESTRATOR_DATABASE_SCHEMA` | Checkpoint and Executor Job schema | `memind_orchestrator` |
|
||||
|
||||
## Extraction test
|
||||
|
||||
|
||||
Reference in New Issue
Block a user