fix: harden queue lifecycle and publish gate
- Preserve phase results on partial retry and keep interrupted phase context after restart. - Avoid webhook bookkeeping crashes when retention deletes stale jobs. - Add deeper unit, integration, and e2e coverage around queue seams. - Require verify job to pass before publish runs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
39
docs/README.md
Normal file
39
docs/README.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# jobqueue docs
|
||||
|
||||
Detailed architecture and runtime docs for `jobqueue`.
|
||||
|
||||
## Doc map
|
||||
|
||||
| File | Purpose |
|
||||
| --- | --- |
|
||||
| [`architecture.md`](./architecture.md) | Static architecture, module boundaries, data model, event model, state model |
|
||||
| [`runtime-lifecycle.md`](./runtime-lifecycle.md) | Step-by-step runtime behavior from startup through shutdown |
|
||||
| [`integration-findings.md`](./integration-findings.md) | Multi-agent scan results, verified bugs, fixes, and remaining behavioral notes |
|
||||
| [`jobqueue.c4`](./jobqueue.c4) | LikeC4 source for landscape, container, component, and runtime views |
|
||||
|
||||
## Mental model
|
||||
|
||||
`jobqueue` is a **single-process orchestrator** around a SQLite-backed job table.
|
||||
|
||||
1. Consumer code creates a `JobQueue`.
|
||||
2. Jobs are persisted immediately in SQLite.
|
||||
3. A pump claims runnable jobs and hands them to a concurrency-limited worker pool.
|
||||
4. `PhaseRunner` executes configured phases and reports progress back through `JobQueue`.
|
||||
5. `JobQueue` persists each state transition, emits typed events, formats SSE payloads, and optionally sends webhooks.
|
||||
6. A retention scheduler can mark old jobs as `stale` and later delete them.
|
||||
|
||||
## Rendering LikeC4 views
|
||||
|
||||
The repository stores LikeC4 source in [`jobqueue.c4`](./jobqueue.c4).
|
||||
|
||||
```bash
|
||||
npx likec4 start docs/jobqueue.c4
|
||||
```
|
||||
|
||||
Recommended views in the file:
|
||||
|
||||
- `index` - system landscape
|
||||
- `library` - container view of `jobqueue`
|
||||
- `runtime` - internal runtime/component view
|
||||
- `enqueue-to-complete` - dynamic happy path
|
||||
- `retry-flow` - dynamic retry path
|
||||
Reference in New Issue
Block a user