Skip to content

Commit 249c129

Browse files
louistrueclaude
andcommitted
fix(review): drop parity-allowlist entries whose divergences are now 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, 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. The gate's own regression tests used two of those entries as fixtures for "an allowlisted divergence does not fail on its own". Repointed at surviving entries rather than deleted, and split across both statuses the allowlist can carry: one `pending`, one `deliberate`. That is strictly more coverage than before, which only exercised `pending`. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0193douQ6sTYHE65DJmyAei9
1 parent 774840c commit 249c129

2 files changed

Lines changed: 13 additions & 17 deletions

File tree

scripts/check-server-browser-type-parity.mjs

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -184,19 +184,6 @@ export const ALLOWLIST = {
184184
'relationships:IFCRELASSIGNSTOPRODUCT': { status: 'pending', note: '#3964, tracked with #3969' },
185185
'relationships:IFCRELREFERENCEDINSPATIALSTRUCTURE': { status: 'pending', note: '#3964, tracked with #3969' },
186186

187-
// #3965: server never promotes a *contained* (not aggregated) spatial
188-
// element into its own hierarchy node. TS treats IfcSpatialZone (the
189-
// Revit Family+Dynamo pattern), IfcMarinePart and IfcFacilityPartCommon as
190-
// spatial-structure nodes; the server's `is_spatial_type` does not yet.
191-
// Open PR #3973 closes #3965.
192-
'spatialTypes:IFCSPATIALZONE': { status: 'pending', note: '#3965, open PR #3973' },
193-
'spatialTypes:IFCMARINEPART': { status: 'pending', note: '#3965, tracked with #3973' },
194-
'spatialTypes:IFCFACILITYPARTCOMMON': { status: 'pending', note: '#3965, tracked with #3973' },
195-
196-
// #3963: the server has no IFCCOMPLEXPROPERTY arm at all and drops the
197-
// whole containing PropertySet; the browser path resolves it via
198-
// parsePropertyValueWithComplex. Open PR #3971 closes #3963.
199-
'properties:IFCCOMPLEXPROPERTY': { status: 'pending', note: '#3963, open PR #3971' },
200187

201188
// #3254: IfcPhysicalComplexQuantity groups other quantities instead of
202189
// carrying a measure itself, so neither side resolves it to a Quantity —

scripts/check-server-browser-type-parity.test.mjs

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,13 @@ test('SPATIAL TYPES: RED when a type is removed from the Rust is_spatial_type ar
178178
assert.match(out, /TS parser .* handles `IFCBUILDINGSTOREY` but the Rust server .* does not/);
179179
});
180180

181-
test('SPATIAL TYPES: an allowlisted divergence (IfcSpatialZone, #3965/#3973) does not fail on its own', () => {
182-
assert.ok(Object.hasOwn(ALLOWLIST, 'spatialTypes:IFCSPATIALZONE'));
181+
test('ALLOWLIST: a `pending` divergence does not fail on its own', () => {
182+
// #3965's spatialTypes entries and #3963's properties entry used to be the
183+
// fixtures here; #3973 and #3971 closed those divergences, so the gate's
184+
// own stale-entry check demanded their removal. Repointed at a divergence
185+
// that is still genuinely open rather than deleting the coverage.
186+
assert.ok(Object.hasOwn(ALLOWLIST, 'relationships:IFCRELCONNECTSELEMENTS'));
187+
assert.equal(ALLOWLIST['relationships:IFCRELCONNECTSELEMENTS'].status, 'pending');
183188
const { status, out } = runOn({});
184189
assert.equal(status, 0, out);
185190
});
@@ -193,8 +198,12 @@ test('SPATIAL TYPES: removing IfcSite from the TS enum list surfaces as a TS-sid
193198

194199
// -- properties -----------------------------------------------------------
195200

196-
test('PROPERTIES: an allowlisted divergence (IFCCOMPLEXPROPERTY, #3963/#3971) does not fail on its own', () => {
197-
assert.ok(Object.hasOwn(ALLOWLIST, 'properties:IFCCOMPLEXPROPERTY'));
201+
test('ALLOWLIST: a `deliberate` divergence does not fail on its own', () => {
202+
// The sibling of the test above, for the other allowlist status: a settled
203+
// trade-off rather than an in-flight fix. Together they prove suppression
204+
// works for both statuses the allowlist can carry.
205+
assert.ok(Object.hasOwn(ALLOWLIST, 'quantities:IFCPHYSICALCOMPLEXQUANTITY'));
206+
assert.equal(ALLOWLIST['quantities:IFCPHYSICALCOMPLEXQUANTITY'].status, 'deliberate');
198207
const { status, out } = runOn({});
199208
assert.equal(status, 0, out);
200209
});

0 commit comments

Comments
 (0)