docs: reconcile ambiguous test contracts
This commit is contained in:
parent
79a4489e03
commit
ce2800a00c
1 changed files with 55 additions and 1 deletions
|
|
@ -133,7 +133,7 @@ identifiable in the lane report.
|
||||||
| T-002 physics tautology | high-confidence cleanup batch A | Compare old-model and new-model reflection decisions, as the surrounding contract states. |
|
| T-002 physics tautology | high-confidence cleanup batch A | Compare old-model and new-model reflection decisions, as the surrounding contract states. |
|
||||||
| T-003 duplicate theory row | high-confidence cleanup batch A | Remove literal `0x41000012`, which is identical to `MotionCommand.Crouch`; remove the temporary analyzer suppression. |
|
| T-003 duplicate theory row | high-confidence cleanup batch A | Remove literal `0x41000012`, which is identical to `MotionCommand.Crouch`; remove the temporary analyzer suppression. |
|
||||||
| T-004 warning mismatches | resolved in R2 | Clean rebuild is zero-warning with repository-wide warnings-as-errors. |
|
| T-004 warning mismatches | resolved in R2 | Clean rebuild is zero-warning with repository-wide warnings-as-errors. |
|
||||||
| T-005 unreachable panel stack | requires production reachability proof | Do not delete 52 meaningful tests until the dead presentation surface and any supported plugin compatibility promise are verified together. |
|
| T-005 dormant panel stack | production reachability and architecture intent reconciled in batch P; user taxonomy decision remains | No shipping code implements `IPanelRenderer`/`IPanelHost` or constructs `ChatPanel`, `DebugPanel`, or `VitalsPanel`, but the architecture explicitly preserves this first-party developer-panel contract for issue #258. Do not call its behavioral tests useless or delete the contract as dead code. Decide separately whether 26 fake-renderer self-tests belong in the release count. |
|
||||||
| T-006 misleading installed-DAT reason | resolved in batch B | Shared opt-in is now `ACDREAM_RUN_INSTALLED_DAT_TESTS=1` (legacy switch retained), the reason names the lane, and all nine owners carry `Lane=InstalledDat`. |
|
| T-006 misleading installed-DAT reason | resolved in batch B | Shared opt-in is now `ACDREAM_RUN_INSTALLED_DAT_TESTS=1` (legacy switch retained), the reason names the lane, and all nine owners carry `Lane=InstalledDat`. |
|
||||||
| T-007 271 silent passing gates | resolved in batch G | All 280 directly found gates plus three later-reconciled sites now fail explicitly when their selected lane lacks its prerequisite. The only three syntax candidates left are reviewed cross-platform branch false positives. |
|
| T-007 271 silent passing gates | resolved in batch G | All 280 directly found gates plus three later-reconciled sites now fail explicitly when their selected lane lacks its prerequisite. The only three syntax candidates left are reviewed cross-platform branch false positives. |
|
||||||
| T-008 incapable-of-failing diagnostics | resolved in batches A, C, and L | The literal wiring smoke test was deleted, the GPU contract tautology was repaired, and the six remaining constant-truth diagnostic assertions were removed after their output was preserved under `Purpose=Diagnostic`. |
|
| T-008 incapable-of-failing diagnostics | resolved in batches A, C, and L | The literal wiring smoke test was deleted, the GPU contract tautology was repaired, and the six remaining constant-truth diagnostic assertions were removed after their output was preserved under `Purpose=Diagnostic`. |
|
||||||
|
|
@ -507,6 +507,60 @@ No source-freeze fact is removed in this classification batch. The 46 staged
|
||||||
facts are an ambiguous architecture decision and will be presented for user
|
facts are an ambiguous architecture decision and will be presented for user
|
||||||
approval in behavior-owner groups rather than deleted from a numeric heuristic.
|
approval in behavior-owner groups rather than deleted from a numeric heuristic.
|
||||||
|
|
||||||
|
### Source-freeze approval groups
|
||||||
|
|
||||||
|
The 46 campaign-era facts are not equivalent. Their current semantic coverage
|
||||||
|
and safest replacement path divide into six owner groups:
|
||||||
|
|
||||||
|
| Owner group | Facts | What the literal checks still prove | R3 recommendation |
|
||||||
|
|---|---:|---|---|
|
||||||
|
| Composition-root wiring | 13 | `GameWindow` calls the intended phase objects and no longer contains the extracted construction bodies. Phase-local tests cover ordering and rollback inside each phase, but not every root-to-phase link. | Keep until one symbol-aware composition-graph guard proves the root links. Then remove the literal constructor/local-name checks. |
|
||||||
|
| Runtime root, host, and lifetime | 12 | One canonical Runtime root/command surface, typed owner handoffs, acquisition order, and native-window-last shutdown. Existing Runtime/lifecycle tests prove much of the behavior, but several sole-owner and transfer claims remain unique. | Replace with direct ownership receipts, terminal-ledger assertions, and metadata dependency guards before removing any source freeze. |
|
||||||
|
| Render delegation and cleanup | 4 | Rendering is delegated and `GameWindow` does not regain leaf draw branches or resource ownership. The owning render suites already exercise the executor, frame builder, renderer, and resource disposal behavior. | Best first conversion: add one symbol-aware boundary guard for the absence/delegation claim, then remove the four literal checks. |
|
||||||
|
| Streaming publication | 4 | The window does not own render/physics publication bodies, captured build origins flow through the extracted owners, and streamer teardown follows session reset. Publisher/build/origin suites already provide broad behavioral coverage. | Best second conversion: consolidate the absence claims into a whole-tree architecture guard and retain the behavioral origin/teardown contracts. |
|
||||||
|
| Live-entity composition | 2 | Typed sources replace window closures and reset closes every streaming/readiness owner. Lifecycle tests cover convergence, but the exact constructor-shape claim is still literal. | Replace with constructor/field metadata inspection plus the existing teardown ledger; do not delete alone. |
|
||||||
|
| Frame orchestration | 11 | Exact-once publication, frame-stage order, adapter ownership, and a deliberately thin `OnUpdate`. These are high-value order rules, but exact statement fragments are the most brittle implementation specification in the set. | Replace order assertions with an observable fake event trace and use a symbol-aware dependency guard for the thin-root rule. This is the largest conversion and should be last. |
|
||||||
|
|
||||||
|
Approval should authorize this replacement sequence, not wholesale deletion:
|
||||||
|
render delegation, streaming, live entities, composition roots, Runtime/host
|
||||||
|
lifetime, then frame orchestration. If the semantic replacement exposes a
|
||||||
|
claim that exists only as historical campaign wording, preserve the rationale
|
||||||
|
and bring that individual deletion back for review.
|
||||||
|
|
||||||
|
## Batch P dormant panel reachability reconciliation
|
||||||
|
|
||||||
|
T-005's production-reachability half is now proved: repository-wide C# usage
|
||||||
|
contains no production `IPanelRenderer` or `IPanelHost` implementation and no
|
||||||
|
shipping construction of `ChatPanel`, `DebugPanel`, or `VitalsPanel`. The old
|
||||||
|
ImGui backend is gone; retained `UiHost`/`UiRoot` controllers are the sole
|
||||||
|
shipping presentation stack, and plugin UI uses
|
||||||
|
`IUiRegistry.AddMarkupPanel` rather than `IPanel`.
|
||||||
|
|
||||||
|
That does **not** make the complete abstraction useless. The architecture
|
||||||
|
document explicitly says `AcDream.UI.Abstractions` and the
|
||||||
|
`IPanel`/`IPanelRenderer` developer-panel contract survive intact for a future
|
||||||
|
host tracked by issue #258. `ChatVM` and `VitalsVM` are also live shared models
|
||||||
|
consumed by retained UI, so their model/parser/command tests are production
|
||||||
|
coverage and are outside T-005.
|
||||||
|
|
||||||
|
The dormant presentation-only subset currently contains 51 attributed methods
|
||||||
|
(57 expanded cases):
|
||||||
|
|
||||||
|
| Subset | Methods | Disposition |
|
||||||
|
|---|---:|---|
|
||||||
|
| `IPanelRendererWidgetTests` and `IPanelRendererMainMenuBarTests` | 26 | They exercise only `FakePanelRenderer`, not a production backend. Treat as test-harness/contract self-tests; user decision whether to retain outside the release total, consolidate, or remove. |
|
||||||
|
| `PanelContextTests` | 2 | Small public-contract value, but only compiler-generated record round-trip/equality. Same taxonomy decision as the renderer self-tests. |
|
||||||
|
| `ChatPanel` layout, input, focus, and colored-render behavior | 23 | Meaningful executable behavior for the explicitly preserved future developer-panel contract. Retain unless that architecture promise is intentionally retired. |
|
||||||
|
|
||||||
|
The earlier audit's recommendation to remove the whole stack was therefore too
|
||||||
|
broad. The maintainability problem is narrower: 28 harness/trivial contract
|
||||||
|
methods inflate release totals despite having no production renderer, while 23
|
||||||
|
panel behavior methods protect a deliberately dormant API. The UI framework
|
||||||
|
plan also has stale present-tense statements that ImGui remains permanent,
|
||||||
|
whereas the architecture authority correctly records its deletion; that is a
|
||||||
|
documentation-reconciliation item, not evidence that the old backend still
|
||||||
|
exists.
|
||||||
|
|
||||||
## Batch J descriptive test identities
|
## Batch J descriptive test identities
|
||||||
|
|
||||||
The first T-016 naming batch changes no oracle or production behavior. It
|
The first T-016 naming batch changes no oracle or production behavior. It
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue