diff --git a/Plant3D2026/P_Rec_Annot/docs/evidence/ortho-membership-dcf-summary.json b/Plant3D2026/P_Rec_Annot/docs/evidence/ortho-membership-dcf-summary.json new file mode 100644 index 0000000..0c9f4c5 --- /dev/null +++ b/Plant3D2026/P_Rec_Annot/docs/evidence/ortho-membership-dcf-summary.json @@ -0,0 +1,66 @@ +{ + "schemaVersion": 1, + "executionMode": "DryRun", + "fixture": { + "frozen": "", + "control": "", + "dryRun": "", + "trackedFileCount": 210 + }, + "membership": { + "mechanism": "IDwgViewDef.DwgQuery.Execute -> MdObjectId.PrjObjectId -> DataLinksManager.FindAcPpRowId", + "orthoViews": 1, + "sourceObjects": 7, + "resolved": 5, + "partiallyResolved": 0, + "outsideView": 2, + "notResolved": 0, + "evidenceCode": "VIEW_MEMBERSHIP_FROM_CONFIRMED_PNP_ID" + }, + "commands": { + "PHP_REC_ANNOT": { + "planSchemaVersion": 1, + "run1PlanId": "plan-AD701C7AA38D99E4C28D7D6D", + "run2PlanId": "plan-AD701C7AA38D99E4C28D7D6D", + "planDeterministic": true, + "summaryDeterministic": true + }, + "PXP-AAV": { + "planSchemaVersion": 1, + "run1PlanId": "plan-C4FCD62F4EEBA1D1948FA22B", + "run2PlanId": "plan-C4FCD62F4EEBA1D1948FA22B", + "planDeterministic": true, + "summaryDeterministic": true + }, + "PXP-OA": { + "planSchemaVersion": 1, + "run1PlanId": "plan-C30D133E2D5B4BF4C0AF2ED1", + "run2PlanId": "plan-C30D133E2D5B4BF4C0AF2ED1", + "planDeterministic": true, + "summaryDeterministic": true + } + }, + "projectFileComparison": { + "controlDeltaCount": 0, + "dryRunDeltaCount": 0, + "modelDwgPluginOnlyDelta": "UNCHANGED", + "orthoDwgPluginOnlyDelta": "UNCHANGED", + "pipingDcfPluginOnlyDelta": "UNCHANGED", + "projectMetadataPluginOnlyDelta": "UNCHANGED" + }, + "dbmod": { + "pairedRun": null, + "reason": "Command-window output was not retained." + }, + "launcher": { + "controlSession": "RolledBack", + "dryRunSession": "RolledBack", + "netloadCount": 1, + "profileArgumentPresent": false + }, + "apply": { + "performed": false, + "authorised": false, + "reason": "All operations remain Skip; annotation rules are not yet implemented." + } +} diff --git a/Plant3D2026/P_Rec_Annot/docs/ortho-runtime-results.md b/Plant3D2026/P_Rec_Annot/docs/ortho-runtime-results.md index c592631..caca06b 100644 --- a/Plant3D2026/P_Rec_Annot/docs/ortho-runtime-results.md +++ b/Plant3D2026/P_Rec_Annot/docs/ortho-runtime-results.md @@ -3,9 +3,11 @@ Date: 2026-08-03 The local test fixture's `TestPipeOrtho.dwg` was detected as Ortho with one -viewport. In `DryRun`, `PHP_REC_ANNOT` ran twice, `PXP-AAV` ran twice, and -`PXP-OA` ran once. All completed without an unhandled exception; `DBMOD` was -`0` before and after. +viewport. In the paired `DryRun`, `PHP_REC_ANNOT`, `PXP-AAV`, and `PXP-OA` +each ran twice. Plugin telemetry recorded all six preflight completions without +an unhandled exception. The command-window DBMOD output was not retained for +this paired run, so its DBMOD value is recorded as `NOT RECORDED` rather than +inferred from telemetry. `PlantProject.Name` was available for this fixture and rendered as `PRecAnnotTestProject`. @@ -17,12 +19,28 @@ reference. The adapter resolves that reference through `PipingProject.GetPnPDrawingFiles()` and reads `DataLinksManager.SelectAcPpRowIds(PnPProjectDrawing.Id)`. -On the latest real DryRun, one source drawing was resolved and seven source -Plant objects were read. `PHP_REC_ANNOT` reported seven skipped operations, -zero writes, zero conflicts, and zero errors. This verifies source-model -DataLinks access; it does not yet verify exact source-object-to-viewport -membership or repeated-plan determinism. +On the paired real DryRun, one source drawing was resolved and seven source +Plant objects were read. The confirmed view query resolved five source rows to +the active viewport and classified two as outside the view. Each command +reported seven skipped operations, zero writes, zero conflicts, and zero +errors. The repeated plans were deterministic: -The test fixture SHA baseline changed for `Piping.dcf` before the first DryRun -command. This run therefore does not prove DCF invariance. A paired control -fixture versus DryRun fixture comparison remains required. +| Command | Run 1 / run 2 PlanId | +| --- | --- | +| `PHP_REC_ANNOT` | `plan-AD701C7AA38D99E4C28D7D6D` | +| `PXP-AAV` | `plan-C4FCD62F4EEBA1D1948FA22B` | +| `PXP-OA` | `plan-C30D133E2D5B4BF4C0AF2ED1` | + +This verifies source-model DataLinks access, exact view membership through the +stored view query, and repeated-plan determinism. The remaining functional +limitation is annotation-rule coverage: all seven operations remain safe +`Skip` operations, so no first Apply is authorised. + +The earlier single-fixture SHA baseline changed before the first command and +was therefore inconclusive. A fresh paired comparison used 210-file CONTROL +and DRYRUN copies created from the same closed frozen fixture. Both inventories +had zero SHA-256 delta after their respective sessions. The CONTROL session +invoked no plugin command; the DRYRUN session invoked all six commands. Thus +the model DWG, Ortho DWG, `Piping.dcf`, project metadata, and other tracked +content-bearing files have no plugin-only delta in this comparison. Both +Launcher sessions completed automatic rollback to `RolledBack`. diff --git a/Plant3D2026/P_Rec_Annot/docs/ortho-viewport-membership.md b/Plant3D2026/P_Rec_Annot/docs/ortho-viewport-membership.md index 30d9fb4..1cdbf08 100644 --- a/Plant3D2026/P_Rec_Annot/docs/ortho-viewport-membership.md +++ b/Plant3D2026/P_Rec_Annot/docs/ortho-viewport-membership.md @@ -24,9 +24,13 @@ model drawing. No geometry-only result is upgraded to `Resolved`. with stable reason codes. `Resolved` membership can progress only through the existing annotation rules; this DryRun slice never writes an annotation. -## Runtime evidence still required +## Paired DryRun evidence -The API contract and build/test coverage are complete, but the exact counts of -resolved and outside-view objects require the next Launcher Next DryRun on the -local Ortho fixture. The runtime report must record the command-pair PlanIds, -summary equality, DBMOD, and automatic rollback. +The paired local DryRun resolved five of seven source rows through the exact +view query and classified the remaining two as `ObjectOutsideView`. Each of +the three supported commands produced an identical PlanId on its repeated +invocation. Both Launcher sessions reached `RolledBack`. + +The paired command-window DBMOD output was not retained. It is intentionally +reported as `NOT RECORDED`; project-file SHA-256 inventories nevertheless had +zero delta for both CONTROL and DRYRUN copies.