diff --git a/explorer/src/workspaces/DecisionWorkspace/DecisionWorkspace.tsx b/explorer/src/workspaces/DecisionWorkspace/DecisionWorkspace.tsx
index 9dd3949a..601148a1 100644
--- a/explorer/src/workspaces/DecisionWorkspace/DecisionWorkspace.tsx
+++ b/explorer/src/workspaces/DecisionWorkspace/DecisionWorkspace.tsx
@@ -102,11 +102,14 @@ export function DecisionWorkspace() {
fetch("/api/decisions", { signal: ctrl.signal })
.then((r) => r.ok ? r.json() : Promise.reject(r.status))
.then((data) => {
+ if (ctrl.signal.aborted) return;
setDecisions(data);
if (data.length > 0) void loadChain(data[0]);
})
.catch((e) => { if (e?.name !== "AbortError") console.error(e); })
- .finally(() => setListLoading(false));
+ .finally(() => {
+ if (!ctrl.signal.aborted) setListLoading(false);
+ });
return () => ctrl.abort();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
diff --git a/explorer/src/workspaces/OntologyWorkspace/AlignmentsTab.tsx b/explorer/src/workspaces/OntologyWorkspace/AlignmentsTab.tsx
index 94f02c13..8034705d 100644
--- a/explorer/src/workspaces/OntologyWorkspace/AlignmentsTab.tsx
+++ b/explorer/src/workspaces/OntologyWorkspace/AlignmentsTab.tsx
@@ -286,7 +286,7 @@ export function AlignmentsTab() {
diff --git a/explorer/src/workspaces/OntologyWorkspace/HealthTab.tsx b/explorer/src/workspaces/OntologyWorkspace/HealthTab.tsx
index eb384925..44d2ffed 100644
--- a/explorer/src/workspaces/OntologyWorkspace/HealthTab.tsx
+++ b/explorer/src/workspaces/OntologyWorkspace/HealthTab.tsx
@@ -82,7 +82,7 @@ export function HealthTab({ onFixInEditor }: HealthTabProps) {
{error ?
{error}
: null}
{loading ? (
- Computing health dashboard...
+ Computing health dashboard...
) : health ? (
<>
diff --git a/explorer/src/workspaces/OntologyWorkspace/OntologyManager.tsx b/explorer/src/workspaces/OntologyWorkspace/OntologyManager.tsx
index 979fe4ee..363de1bc 100644
--- a/explorer/src/workspaces/OntologyWorkspace/OntologyManager.tsx
+++ b/explorer/src/workspaces/OntologyWorkspace/OntologyManager.tsx
@@ -5,7 +5,6 @@ import {
BookOpen,
CheckCircle2,
ExternalLink,
- GitMerge,
Layers,
Loader2,
Plus,
diff --git a/explorer/src/workspaces/OntologyWorkspace/ShaclStudio.tsx b/explorer/src/workspaces/OntologyWorkspace/ShaclStudio.tsx
index 288fc231..5a64ee9b 100644
--- a/explorer/src/workspaces/OntologyWorkspace/ShaclStudio.tsx
+++ b/explorer/src/workspaces/OntologyWorkspace/ShaclStudio.tsx
@@ -254,7 +254,7 @@ export function ShaclStudio({ onJumpToNode }: ShaclStudioProps) {
diff --git a/explorer/tests/graphSceneState.display.test.ts b/explorer/tests/graphSceneState.display.test.ts
index 76039d4d..6794cafc 100644
--- a/explorer/tests/graphSceneState.display.test.ts
+++ b/explorer/tests/graphSceneState.display.test.ts
@@ -160,7 +160,7 @@ test("summarizeDistanceBuckets reports local rings and outside count", () => {
anchor: 1,
oneHop: 1,
twoHop: 1,
- threeHop: 1,
+ threeHopPlus: 1,
outside: 2,
});
});
@@ -193,11 +193,11 @@ test("buildHeatmapRenderSnapshot caps and deterministically samples large rings"
assert.equal(firstSnapshot.ringCounts.anchor, 1);
assert.equal(firstSnapshot.ringCounts.oneHop, 130);
assert.equal(firstSnapshot.ringCounts.twoHop, 700);
- assert.equal(firstSnapshot.ringCounts.threeHop, 950);
+ assert.equal(firstSnapshot.ringCounts.threeHopPlus, 950);
assert.equal(firstSnapshot.renderedRingCounts.anchor, 1);
assert.equal(firstSnapshot.renderedRingCounts.oneHop, 120);
assert.equal(firstSnapshot.renderedRingCounts.twoHop, 650);
- assert.equal(firstSnapshot.renderedRingCounts.threeHop, 900);
+ assert.equal(firstSnapshot.renderedRingCounts.threeHopPlus, 900);
assert.equal(firstSnapshot.saturationMode, "sampled");
assert.deepEqual(firstSnapshot.visibleNodeIds, secondSnapshot.visibleNodeIds);
assert.ok(firstSnapshot.visibleNodeIds.includes("anchor"));
@@ -233,7 +233,7 @@ test("resolveDistanceNodeStyle applies readable heatmap rings only when ready",
anchor: 1,
oneHop: 1,
twoHop: 1,
- threeHop: 1,
+ threeHopPlus: 1,
outside: 1,
},
});
@@ -268,7 +268,7 @@ test("resolveDistanceNodeStyle compresses saturated heatmap far rings", () => {
anchor: 1,
oneHop: 32,
twoHop: 3350,
- threeHop: 7412,
+ threeHopPlus: 7412,
outside: 3280,
},
});
@@ -295,14 +295,14 @@ test("resolveDistanceNodeStyle mutes unsampled heatmap nodes instead of coloring
anchor: 1,
oneHop: 0,
twoHop: 2,
- threeHop: 0,
+ threeHopPlus: 0,
outside: 0,
},
heatmapRenderedRingCounts: {
anchor: 1,
oneHop: 0,
twoHop: 1,
- threeHop: 0,
+ threeHopPlus: 0,
outside: 0,
},
heatmapSaturationMode: "sampled",