Separate engine loading from inspection state
This commit is contained in:
@@ -345,7 +345,7 @@ generic result before lifecycle delegation begins.
|
||||
|
||||
## Stage 5 — Separate engine publication and inspection
|
||||
|
||||
Status: not started.
|
||||
Status: complete (2026-09-12).
|
||||
|
||||
1. Split generic engine Result into the short-lived loaded configuration carrier
|
||||
and non-generic inspection state specified above. Move inspection methods to
|
||||
@@ -363,6 +363,23 @@ configuration detachment but does not store Config in inspection. Run
|
||||
`go test ./internal/engine -run 'Load|Metadata|Provenance|Historical|Explain|Effective|Render|Independence'`,
|
||||
`go test -race ./internal/engine`, and the everyday check.
|
||||
|
||||
### Completion
|
||||
|
||||
Replaced the engine's generic result with `Loaded[T]`, a short-lived carrier of
|
||||
the detached configuration and a non-generic `Inspection`. `Inspection` now
|
||||
owns the frozen metadata, sources, diagnostics, document snapshots, history,
|
||||
resolution snapshots, and sensitivity state; its query, explanation, and
|
||||
rendering methods retain their previous behavior. The published configuration
|
||||
is detached as before and is not retained by `Inspection`.
|
||||
|
||||
Engine tests use a test-only adapter while exercising the moved inspection
|
||||
receiver, and a direct `Loaded` test verifies that mutating `Config` cannot
|
||||
change its frozen effective view. Linux validation with Go 1.26.7 passed
|
||||
`go test ./internal/engine -run 'Load|Metadata|Provenance|Historical|Explain|Effective|Render|Independence'`,
|
||||
`go test -race ./internal/engine`, and `./scripts/check.sh`. There were no
|
||||
deviations or remaining risks. The next handoff wires the candidate facade's
|
||||
lifecycle and callback wrappers to the split engine result.
|
||||
|
||||
## Stage 6 — Wire candidate lifecycle and callback wrappers
|
||||
|
||||
Status: not started.
|
||||
|
||||
Reference in New Issue
Block a user