fix(review): drop parity-allowlist entries whose divergences are now fixed - #4105
fix(review): drop parity-allowlist entries whose divergences are now fixed#4105BIMvoice wants to merge 2 commits into
Conversation
…fixed The server/browser type-parity gate (#3979) shipped an allowlist naming four divergences as in-flight, two of them by their own text: "open PR #3973" and "open PR #3971". Both merged (#3973 promoted contained IfcSpatialZone/IfcMarinePart/IfcFacilityPartCommon into their own hierarchy nodes server-side; #3971 added the server's IFCCOMPLEXPROPERTY arm), so the entries mute nothing and the gate correctly refuses them: [spatialTypes:IFCSPATIALZONE] the type is now handled by BOTH [spatialTypes:IFCMARINEPART] sides -- the divergence this entry [spatialTypes:IFCFACILITYPARTCOMMON] mutes is gone [properties:IFCCOMPLEXPROPERTY] Each PR was green alone; only the merged tree is red, because #3979 added the gate and #3971/#3973 removed the divergences it was told to expect. This blocks Node tests on every PR rebased onto main today (confirmed on #4102, #4090, #4089, #4018's job logs). This is the staleness detector working as designed -- a temporary mute expiring, not a bug in the check. The gate's own regression tests used two of those entries as fixtures for "an allowlisted divergence does not fail on its own". No spatialTypes or properties entry survives to point a fixture at, and suppression is concept-agnostic (one `ALLOWLIST['${concept}:${type}']` lookup), so the RELATIONSHIPS and QUANTITIES tests already cover the mechanism for both allowlist statuses (`pending` and `deliberate`) -- the two now-pointless duplicates are deleted rather than repointed. node scripts/check-server-browser-type-parity.mjs now reports OK with the remaining 7 entries (6 pending, 1 deliberate) intact and correctly counted. node --test scripts/check-server-browser-type-parity.test.mjs: 42 passing (44 minus the two deleted duplicates).
|
Warning Review limit reached
This review includes 2 billable files and costs up to $0.50. Or wait 7 minutes for your next included review. View limit detailsLimit details: You’ve used all 2 included reviews currently available. Review configuration: ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (2)
Comment |
|
This overlaps #4101 — you likely only need one of them, and #4101 is probably it. I opened this to unblock It already carries the same prune. So #4101 clears both red gates on I'd suggest closing this in favour of #4101 unless you specifically want the two fixes separated for review or revert granularity. I'm not closing it myself; it costs nothing to leave open if you'd rather land them independently. For the record, the verification here stands on its own either way — each of the four entries was confirmed genuinely closed on both sides before deletion, rather than deleted to get green:
Checker after: Worth noting the detector earned its keep on day one: #3979 merged at 13:31, #3971 and #3973 merged seconds later and closed these divergences, and the mutes — still annotated |
Claude review - no findings for
|
|
Heads-up before this goes further: #4101 already carries this exact fix, and it is further along. Same two files, same four entries, same reasoning. #4101 was opened to fix a different red-main breakage (#3922 pushed Your analysis here is right and matches mine independently, which is worth something on its own. The reason to consolidate rather than land both is mechanical: whichever merges second conflicts with the first in the same two files. My suggestion is to close this in favour of #4101, but I am not going to close someone else's PR. Two things I would rather you decide:
One difference worth folding in either way. My first attempt at the test side repointed the two allowlist-suppression tests at surviving entries. Pre-flight review caught that the repointed tests were duplicates of tests already at Separately: #4102 is a genuinely good catch and is not duplicated by anything of mine. That one should land. |
|
The latest updates on your projects. Learn more about Vercel for GitHub. 2 Skipped Deployments
|
Claude review - nothing to review for
|
|
Closing as superseded by #4101, which merged at 15:44 and carries this exact fix. Credit where it is due: you diagnosed this independently and correctly. Same four entries, same root cause, same reading of why a stale allowlist row is worse than clutter. Two of us arriving at the same analysis from different directions is a good sign about the analysis, and your write-up named the mechanism precisely: #3979 shipped the gate with an allowlist of expected divergences, then #3971 and #3973 closed four of them, and the staleness detector correctly refused entries that were by then muting nothing. The only reason yours is the one closing is sequencing. #4101 existed for a different red-main breakage (#3922 took For the record, since it is worth having somewhere: the version that landed deletes the gate's two allowlist-suppression tests rather than repointing them. My first attempt repointed them at surviving entries, and the pre-flight review caught that the repointed tests were duplicates of tests already at Nothing here was wasted: #4102, your Python-toolchain fix for the revert-oracle lane, is genuinely yours and is not duplicated by anything of mine. That one should land. Reopen if you disagree with the consolidation. |
Summary
The server/browser type-parity gate (#3979) shipped an allowlist naming four divergences as in-flight, two of them by their own text: "open PR #3973" and "open PR #3971". Both merged — #3973 promoted the contained (not aggregated)
IfcSpatialZone/IfcMarinePart/IfcFacilityPartCommontypes into their own hierarchy nodes on the Rust server, and #3971 added the server'sIFCCOMPLEXPROPERTYarm — so the four entries now mute nothing, and #3979's staleness detector correctly refuses them:Each of #3971/#3973 was green alone; only the merged tree (with #3979's detector also present) is red, because #3979 added the check and #3971/#3973 independently closed the gaps it was told to expect as still-open. This is the staleness mechanism working exactly as designed — a temporary mute expiring — not a bug in the checker, and it is currently blocking
Node testson every PR rebased ontomain(confirmed on #4102, #4090, #4089, #4018's job logs).ALLOWLISTentries; the remaining 7 (6pending, 1deliberate) are untouched.spatialTypesorpropertiesentry survives to point a fixture at, and suppression is concept-agnostic (oneALLOWLIST['${concept}:${type}']lookup), so the existingRELATIONSHIPS(pending) andQUANTITIES(deliberate) tests already cover the mechanism for both allowlist statuses — the two now-pointless duplicates are deleted rather than repointed.Per-entry evidence the divergence is closed (verified against current
main):apps/server/src/services/data_model/spatial.rsnow matches"IFCSPATIALZONE","IFCFACILITYPARTCOMMON","IFCMARINEPART"inis_spatial_type, matchingpackages/data/src/spatial-types.ts'sSPATIAL_STRUCTURE_TYPE_ENUMS.apps/server/src/services/data_model/properties.rsnow has an"IFCCOMPLEXPROPERTY" => { ... }arm, matchingpackages/parser/src/property-value-parser.ts's handling.Does not touch the module-size ratchet or
boolean/mod.rs— that's a separate, unrelated failure being addressed by #4101.Test plan
node scripts/check-server-browser-type-parity.mjs→OK, 7 remaining allowlist entries (6 pending, 1 deliberate) correctly countednode --test scripts/check-server-browser-type-parity.test.mjs→ 42 passing (44 before this change, minus the two deleted duplicate fixtures)node scripts/check-module-size.mjs→ OKnode scripts/check-test-wiring.mjs→ OKnode scripts/check-source-text-assertions.mjs→ OKNo changeset: this is a
scripts/-only change to a lint's allowlist, not a published package; comparable prior PRs to this same checker (#3979, and the fix that added the staleness detector itself) carried none.unqueued: there is no tracking issue for this — it's an emergent CI-unblock from #3979's staleness detector correctly firing after #3971/#3973 merged.🤖 Generated with Claude Code