test+docs: mixed-deploy survival, STATUS/P1 close-out (R2-07 T14)
This commit is contained in:
@@ -369,3 +369,32 @@ Tasks are bite-sized TDD increments. **Classification:** `high-risk` = touches t
|
||||
- TDD: mixed-deploy integration case (subscribe A; deploy −B/+C; A alive, B gone, C browsable). Live: one deploy carrying +1/−1 on docker-dev (both centrals), log `kind=AddRemoveMix, rebuild=False`, survivor subscription uninterrupted. Update STATUS.md + the P1 finding row.
|
||||
- Commit: `test+docs: mixed-deploy survival, live evidence, STATUS/P1 close-out (R2-07 T14)`
|
||||
- **── PHASE 3 / PLAN COMPLETE ──**
|
||||
|
||||
---
|
||||
|
||||
## Execution deviations (R2-07)
|
||||
|
||||
- **Applier phase-pin tests were flipped, not "untouched-green".** The plan framed T2/T11/T13 as
|
||||
behavior-preserving ("every pre-existing applier test untouched-green"). In reality several pre-existing
|
||||
tests directly encoded the OLD full-rebuild-on-any-topology-change behavior — `Added_equipment_*`,
|
||||
`Removed_equipment_*`, `Surgical_eligible_tag_delta_mixed_with_added_equipment_rebuilds`,
|
||||
`Folder_rename_mixed_with_added_equipment_rebuilds`, `Removed_equipment_tags_and_virtual_tags_only_rebuild_*`
|
||||
— and were flipped to assert the new PureAdd/PureRemove/AddRemoveMix no-rebuild behavior (each doc-commented
|
||||
"Supersedes the pre-R2-07 … pin"). The genuinely-behavior-preserving tests (surgical attribute path, folder
|
||||
renames, changed-non-surgical ⇒ rebuild) stayed green untouched.
|
||||
- **Incidental `RebuildCalled` assertions repointed.** Tests whose *subject* was not the rebuild decision but
|
||||
which happened to assert `RebuildCalled==true` on a now-PureAdd plan were adjusted:
|
||||
`AddressSpaceApplierFailureSurfaceTests` (rebuild-failed surfacing) + `OpcUaPublishActorApplyFailureTests`
|
||||
(apply.failed meter) were repointed to a **rebuild-forcing ChangedEquipment plan** so they still exercise
|
||||
the SafeRebuild path; `AddressSpaceApplierProvisioningTests` `RebuildCalled` assertions became
|
||||
`RebuildCalled==false` + `AddedNodes>0` (provisioning still fires on a pure-add).
|
||||
- **T1 predicate references:** the two eligibility predicates moved to `AddressSpaceChangeClassifier` as
|
||||
`internal static`; the applier references them directly (`AddressSpaceChangeClassifier.TagDeltaIsSurgicalEligible`)
|
||||
rather than keeping thin delegating wrappers.
|
||||
- **Integration + live gates deferred-live (memory constraint).** Per the executor's memory budget
|
||||
(`*.IntegrationTests` leak ~16 GB/run, other plans running concurrently), the over-the-wire
|
||||
`SubscriptionSurvivalTests` (add/remove/mixed) were **authored + `dotnet build`-compile-verified but NOT
|
||||
run**, and T6/T12/T14 docker-dev live-`/run` gates were marked `deferred-live`. These are the F10b
|
||||
inertness nets and MUST be run in the serial heavy pass before merge/trust.
|
||||
- **Worktree entry:** `EnterWorktree` refused to switch from the repo root; all work was done against the
|
||||
worktree via absolute paths + `git -C`, never touching the main checkout.
|
||||
|
||||
Reference in New Issue
Block a user