tenseleyflow/loader / 1a045b2

Browse files

Audit Sprint 25 runtime API rollout

Authored by espadonne
SHA
1a045b2d0b3af37b277eb34737a4301bb2f69938
Parents
a488ab3
Tree
553d8ce

1 changed file

StatusFile+-
M .docs/sprints/sprint25.md 26 0
.docs/sprints/sprint25.mdmodified
@@ -169,3 +169,29 @@ The goal is to make Loader's runtime ownership and verification story easier to
169169
 - AST-aware semantic diffs
170170
 - a broad visual workflow UI redesign
171171
 - multi-agent or team orchestration
172
+
173
+## Audit
174
+
175
+### Status
176
+
177
+- Sprint 25 is complete, and the audit is green. Loader now has a runtime-owned outer API contract below `Agent`, explicit verification-attempt identity threaded through completion/freshness policy, and operator surfaces that can explain both the runtime boundary and the active versus superseded verification attempts.
178
+
179
+### Landed
180
+
181
+- Loader now has a narrower runtime-owned shell API below `Agent`: `src/loader/runtime/runtime_api.py`, `src/loader/cli/main.py`, and `src/loader/ui/app.py` now share one runtime-owned boundary for shell-owner construction instead of treating CLI and TUI ownership as adjacent but separate contracts
182
+- verification lifecycle is now represented with explicit attempt identity instead of only lifecycle labels: `src/loader/runtime/dod.py`, `src/loader/runtime/verification_observations.py`, `src/loader/runtime/tool_batches.py`, `src/loader/runtime/finalization.py`, `src/loader/runtime/task_completion.py`, and `src/loader/runtime/completion_policy.py` now preserve which attempt is planned, pending, stale, observed, skipped, or superseded
183
+- completion/freshness policy now explains itself in attempt-aware terms: when Loader continues, finalizes, or rejects stale proof, it can say which attempt was still active, which one was superseded, and why one attempt did or did not satisfy the stop condition
184
+- operator surfaces now expose the stronger boundary and attempt story without adding new commands: `src/loader/runtime/inspection.py`, `src/loader/cli/main.py`, `src/loader/runtime/owner_metadata.py`, `src/loader/ui/status_helpers.py`, `src/loader/ui/widgets/status_line.py`, and `src/loader/ui/app.py` now show runtime-boundary summaries plus attempt-aware verification state in `loader status`, `loader session show`, `loader workflow show`, and the TUI status line
185
+
186
+### Verification
187
+
188
+- `uv run pytest -q` is green: `416 passed`
189
+- `tests/test_cli_runtime_owner.py` now pins the runtime-owned shell API boundary for CLI and TUI ownership
190
+- `tests/test_completion_policy.py` and `tests/test_turn_completion.py` now pin attempt-aware completion/freshness reasoning, including superseded-attempt summaries
191
+- `tests/test_inspection.py` and `tests/test_status_surfaces.py` now pin runtime-boundary summaries, verification-state summaries, and TUI owner/attempt status rendering
192
+
193
+### Residual debt
194
+
195
+- `src/loader/runtime/runtime_api.py` narrows the boundary materially, but `Agent` plus `runtime.public_shell` still remain the documented public compatibility layer instead of Loader exposing a fully runtime-first external API to all callers
196
+- verification attempt identity is now explicit, but Loader still does not preserve richer attempt timing and queue semantics such as first-planned versus actively-started timestamps, or deeper multi-command attempt bundles
197
+- the operator surfaces now explain active versus superseded attempts clearly, but they are still concise rollups rather than a deeper attempt-history debugger or OMX-style verifier narrative