| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(explorer): add Semantica Knowledge Explorer UI with full feature set ## Folder & Project - Renamed `semantica-explorer/` → `explorer/` (cleaner path) - Browser tab title: `Semantica Knowledge Explorer` - Brand pill: `SEM` → `SKE` (tooltip: Semantica Knowledge Explorer) - Nav rail label: `Explore` → `Knowledge Explorer` - package.json name: `semantica-knowledge-explorer` - Downgraded Vite 8 → Vite 5 for Node v20.17.0 compatibility ## App Shell - Dynamic per-workspace kicker labels replacing static "Workspace" pill: Graph Studio · Vocabulary Browser · Reasoning Engine · SPARQL Query · Decision Intelligence · Knowledge Audit · Graph Governance ## Enrich Workspace — 2 new tabs ### Entity Resolution tab - Similarity threshold slider (0.50–0.99) - Run Dedup Scan → POST /api/enrich/dedup - Flagged pairs list with colour-coded score bars (red/amber/green) - Expandable inline diff: primary vs duplicate side-by-side - One-click Merge → POST /api/enrich/merge with logEvent dispatch - Dismiss per pair; Clear all button - Merge history sidebar pulled live from Registry store ### Registry tab (Document Registry) - Live chronological audit log of all KG mutations in-session - Colour-coded op-type badges: IMPORT · MERGE · ADD NODE · ADD EDGE · INFER · DELETE · EXPORT · VOCAB - Filter pills to narrow by operation type - Expandable JSON detail rows per entry - Clear log button - Entirely client-side via registryStore (no backend needed) ## Manage Workspace — 2 new tabs ### KG Overview tab - Stats chips: total nodes, edges, graph density - Node type breakdown bar chart (up to 8 types, colour-coded) - Edge type breakdown bar chart from /api/graph/stats - Top-10 most connected nodes ranked by degree - Skeleton loading states + Refresh button ### Ontology Summary tab - Read-only SKOS scheme tree (scheme → top concepts → narrower) - Concept detail panel: labels, notation, description, narrower nav - "Open Full Browser" button deep-links to Vocabulary Browser tab ## Decision Workspace polish - CausalFlowDiagram: vertical node cards connected by relationship pills - Outcome badges: colour-coded (green=approved, red=rejected, amber=deferred) - Live filter input across decision ID, category, and outcome - Animated skeleton loading while list fetches ## Graph Inspector polish - PathFlowViz: clickable node chips connected by edge-type labels; clicking a chip focuses that node in the canvas - Link Prediction button shows spinner while computing - Empty states for path trace and candidate links sections ## Registry dispatch — WebSocket - ADD_NODE events → logEvent("add-node", …) in GraphWorkspace WS handler - ADD_EDGE events → logEvent("add-edge", …) in GraphWorkspace WS handler - Import, Export, Merge already dispatched logEvent on API response ## Graph visibility overhaul ### Edge colours (were nearly transparent, now clearly visible) - edgeBackbone: rgba(…, 0.04) → rgba(…, 0.38) - edgeStructure: rgba(…, 0.009) → rgba(…, 0.28) - edgeInspection: rgba(…, 0.026) → rgba(…, 0.48) - Muted edges: 0.009–0.02 → 0.12–0.26 - Focus edges: 0.16 → 0.42 ### Edge sizes - default minSize: 0.18 → 0.9 (always at least 1 pixel wide) - path minSize: 1.8 → 2.4 - inactive/muted: hide:true → hide:false (dimmed not hidden) ### Node sizes - default sizeMultiplier: 0.72 → 0.92 - default minSize: 0.68 → 3.5 (visible at all zoom levels) - overview nodeScale: 0.66 → 0.88 - nodeTintMix (colour): 0.03 → 0.14 - nodeCoreMix (brightness): 0.52 → 0.72 ### Label budget - overview: 10 → 28 labels - structure: 36 → 60 labels - inspection: 80 → 120 labels ### Sigma settings - renderEdgeLabels: false → true (relationship type on every edge) - edgeLabelSize: — → 10 - labelRenderedSizeThreshold: 4 → 2 - labelDensity: 0.86 → 1.1 - hideLabelsOnMove: true → false (labels stay visible while panning) - hideEdgesOnMove: true → false (edges stay visible while panning) - minCameraRatio: — → 0.04 (prevents zooming inside a node) - maxCameraRatio: — → 8 (graph stays visible when zoomed out) ### Zoom controls - Added Zoom In (+) and Zoom Out (−) buttons to graph toolbar - Smooth animated zoom via camera.animatedZoom / animatedUnzoom (200ms) - Mouse scroll wheel clamped between minCameraRatio and maxCameraRatio Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> | 6 个月前 | |
fix(explorer): align visible legend with semantic node colors (#1483) Replace the static biomedical category key in Explorer with a live node color legend derived from the active display graph, sharing the canvas's baseColor -> color -> theme fallback resolver. - Preserve original semantic colors on focused display clones via `semanticBaseColor` so interaction styling (selection, path, neighbor highlights) does not bleed into the legend. - Suppress the semantic legend while distance visualization modes are active. - Refactor plugin fallback legend panels to use the shared legend builder with composite (group, color) keys. - Consolidate duplicate `"test:graph-workspace"` scripts in `explorer/package.json`, recovering 26 previously shadowed tests across markdown and explorer capability suites. - Add `tests/graphColorLegend.test.ts` to workspace test runs and wire `test:graph-legend-e2e` into `.github/workflows/ci.yml`. - Closes #1479 | 1 个月前 | |
feat(explorer): add Semantica Knowledge Explorer UI with full feature set ## Folder & Project - Renamed `semantica-explorer/` → `explorer/` (cleaner path) - Browser tab title: `Semantica Knowledge Explorer` - Brand pill: `SEM` → `SKE` (tooltip: Semantica Knowledge Explorer) - Nav rail label: `Explore` → `Knowledge Explorer` - package.json name: `semantica-knowledge-explorer` - Downgraded Vite 8 → Vite 5 for Node v20.17.0 compatibility ## App Shell - Dynamic per-workspace kicker labels replacing static "Workspace" pill: Graph Studio · Vocabulary Browser · Reasoning Engine · SPARQL Query · Decision Intelligence · Knowledge Audit · Graph Governance ## Enrich Workspace — 2 new tabs ### Entity Resolution tab - Similarity threshold slider (0.50–0.99) - Run Dedup Scan → POST /api/enrich/dedup - Flagged pairs list with colour-coded score bars (red/amber/green) - Expandable inline diff: primary vs duplicate side-by-side - One-click Merge → POST /api/enrich/merge with logEvent dispatch - Dismiss per pair; Clear all button - Merge history sidebar pulled live from Registry store ### Registry tab (Document Registry) - Live chronological audit log of all KG mutations in-session - Colour-coded op-type badges: IMPORT · MERGE · ADD NODE · ADD EDGE · INFER · DELETE · EXPORT · VOCAB - Filter pills to narrow by operation type - Expandable JSON detail rows per entry - Clear log button - Entirely client-side via registryStore (no backend needed) ## Manage Workspace — 2 new tabs ### KG Overview tab - Stats chips: total nodes, edges, graph density - Node type breakdown bar chart (up to 8 types, colour-coded) - Edge type breakdown bar chart from /api/graph/stats - Top-10 most connected nodes ranked by degree - Skeleton loading states + Refresh button ### Ontology Summary tab - Read-only SKOS scheme tree (scheme → top concepts → narrower) - Concept detail panel: labels, notation, description, narrower nav - "Open Full Browser" button deep-links to Vocabulary Browser tab ## Decision Workspace polish - CausalFlowDiagram: vertical node cards connected by relationship pills - Outcome badges: colour-coded (green=approved, red=rejected, amber=deferred) - Live filter input across decision ID, category, and outcome - Animated skeleton loading while list fetches ## Graph Inspector polish - PathFlowViz: clickable node chips connected by edge-type labels; clicking a chip focuses that node in the canvas - Link Prediction button shows spinner while computing - Empty states for path trace and candidate links sections ## Registry dispatch — WebSocket - ADD_NODE events → logEvent("add-node", …) in GraphWorkspace WS handler - ADD_EDGE events → logEvent("add-edge", …) in GraphWorkspace WS handler - Import, Export, Merge already dispatched logEvent on API response ## Graph visibility overhaul ### Edge colours (were nearly transparent, now clearly visible) - edgeBackbone: rgba(…, 0.04) → rgba(…, 0.38) - edgeStructure: rgba(…, 0.009) → rgba(…, 0.28) - edgeInspection: rgba(…, 0.026) → rgba(…, 0.48) - Muted edges: 0.009–0.02 → 0.12–0.26 - Focus edges: 0.16 → 0.42 ### Edge sizes - default minSize: 0.18 → 0.9 (always at least 1 pixel wide) - path minSize: 1.8 → 2.4 - inactive/muted: hide:true → hide:false (dimmed not hidden) ### Node sizes - default sizeMultiplier: 0.72 → 0.92 - default minSize: 0.68 → 3.5 (visible at all zoom levels) - overview nodeScale: 0.66 → 0.88 - nodeTintMix (colour): 0.03 → 0.14 - nodeCoreMix (brightness): 0.52 → 0.72 ### Label budget - overview: 10 → 28 labels - structure: 36 → 60 labels - inspection: 80 → 120 labels ### Sigma settings - renderEdgeLabels: false → true (relationship type on every edge) - edgeLabelSize: — → 10 - labelRenderedSizeThreshold: 4 → 2 - labelDensity: 0.86 → 1.1 - hideLabelsOnMove: true → false (labels stay visible while panning) - hideEdgesOnMove: true → false (edges stay visible while panning) - minCameraRatio: — → 0.04 (prevents zooming inside a node) - maxCameraRatio: — → 8 (graph stays visible when zoomed out) ### Zoom controls - Added Zoom In (+) and Zoom Out (−) buttons to graph toolbar - Smooth animated zoom via camera.animatedZoom / animatedUnzoom (200ms) - Mouse scroll wheel clamped between minCameraRatio and maxCameraRatio Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> | 6 个月前 | |
fix(explorer): serve entity_type from the ontology graph endpoint (#1438) * fix(explorer): serve entity_type from /api/ontology/graph The node-type classification vocabulary existed twice — once in the backend (_CLASS_TYPES/_PROPERTY_TYPES/_classify_node_type) and once in the Ontology Editor (classifyNodeType/FULL_IRI_PREFIXES). The copies had already drifted: the frontend recognized only compact types (owl:Class) until full IRIs were patched in separately. /graph now returns the server-computed entity_type per node, matching /entity/{uri}, and the editor maps it to its own read-only/editable kinds instead of parsing RDF types. The classification tests move to the backend with it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(explorer): keep graph entity_type inside the response vocabulary Review follow-up: the classifier's "unknown" fallback leaked into the graph response for outward references with unrecognized types; from the requested ontology's perspective such nodes are external reference material. Also extend the classification test to the full compact/ full-IRI matrix (property, ontology, unrecognized external). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(explorer): let /graph and /entity speak one entity_type vocabulary The graph endpoint mapped the classifier's "unknown" to "external", which the editor already does in its default branch — so the mapping changed nothing visible while making the two endpoints report different values for the same node. Emit the classifier verdict verbatim and keep the "external reference material" reading in the editor, where it acts on it. Make entity_type required on OntologyGraphNode: optional turns a producer that forgets into a graph of silently read-only nodes. Pin the agreement with a test that queries both endpoints for the same URIs, fragment-encoded so it cannot pass on the parent ontology instead. | 1 个月前 | |
feat(explorer): add Semantica Knowledge Explorer UI with full feature set ## Folder & Project - Renamed `semantica-explorer/` → `explorer/` (cleaner path) - Browser tab title: `Semantica Knowledge Explorer` - Brand pill: `SEM` → `SKE` (tooltip: Semantica Knowledge Explorer) - Nav rail label: `Explore` → `Knowledge Explorer` - package.json name: `semantica-knowledge-explorer` - Downgraded Vite 8 → Vite 5 for Node v20.17.0 compatibility ## App Shell - Dynamic per-workspace kicker labels replacing static "Workspace" pill: Graph Studio · Vocabulary Browser · Reasoning Engine · SPARQL Query · Decision Intelligence · Knowledge Audit · Graph Governance ## Enrich Workspace — 2 new tabs ### Entity Resolution tab - Similarity threshold slider (0.50–0.99) - Run Dedup Scan → POST /api/enrich/dedup - Flagged pairs list with colour-coded score bars (red/amber/green) - Expandable inline diff: primary vs duplicate side-by-side - One-click Merge → POST /api/enrich/merge with logEvent dispatch - Dismiss per pair; Clear all button - Merge history sidebar pulled live from Registry store ### Registry tab (Document Registry) - Live chronological audit log of all KG mutations in-session - Colour-coded op-type badges: IMPORT · MERGE · ADD NODE · ADD EDGE · INFER · DELETE · EXPORT · VOCAB - Filter pills to narrow by operation type - Expandable JSON detail rows per entry - Clear log button - Entirely client-side via registryStore (no backend needed) ## Manage Workspace — 2 new tabs ### KG Overview tab - Stats chips: total nodes, edges, graph density - Node type breakdown bar chart (up to 8 types, colour-coded) - Edge type breakdown bar chart from /api/graph/stats - Top-10 most connected nodes ranked by degree - Skeleton loading states + Refresh button ### Ontology Summary tab - Read-only SKOS scheme tree (scheme → top concepts → narrower) - Concept detail panel: labels, notation, description, narrower nav - "Open Full Browser" button deep-links to Vocabulary Browser tab ## Decision Workspace polish - CausalFlowDiagram: vertical node cards connected by relationship pills - Outcome badges: colour-coded (green=approved, red=rejected, amber=deferred) - Live filter input across decision ID, category, and outcome - Animated skeleton loading while list fetches ## Graph Inspector polish - PathFlowViz: clickable node chips connected by edge-type labels; clicking a chip focuses that node in the canvas - Link Prediction button shows spinner while computing - Empty states for path trace and candidate links sections ## Registry dispatch — WebSocket - ADD_NODE events → logEvent("add-node", …) in GraphWorkspace WS handler - ADD_EDGE events → logEvent("add-edge", …) in GraphWorkspace WS handler - Import, Export, Merge already dispatched logEvent on API response ## Graph visibility overhaul ### Edge colours (were nearly transparent, now clearly visible) - edgeBackbone: rgba(…, 0.04) → rgba(…, 0.38) - edgeStructure: rgba(…, 0.009) → rgba(…, 0.28) - edgeInspection: rgba(…, 0.026) → rgba(…, 0.48) - Muted edges: 0.009–0.02 → 0.12–0.26 - Focus edges: 0.16 → 0.42 ### Edge sizes - default minSize: 0.18 → 0.9 (always at least 1 pixel wide) - path minSize: 1.8 → 2.4 - inactive/muted: hide:true → hide:false (dimmed not hidden) ### Node sizes - default sizeMultiplier: 0.72 → 0.92 - default minSize: 0.68 → 3.5 (visible at all zoom levels) - overview nodeScale: 0.66 → 0.88 - nodeTintMix (colour): 0.03 → 0.14 - nodeCoreMix (brightness): 0.52 → 0.72 ### Label budget - overview: 10 → 28 labels - structure: 36 → 60 labels - inspection: 80 → 120 labels ### Sigma settings - renderEdgeLabels: false → true (relationship type on every edge) - edgeLabelSize: — → 10 - labelRenderedSizeThreshold: 4 → 2 - labelDensity: 0.86 → 1.1 - hideLabelsOnMove: true → false (labels stay visible while panning) - hideEdgesOnMove: true → false (edges stay visible while panning) - minCameraRatio: — → 0.04 (prevents zooming inside a node) - maxCameraRatio: — → 8 (graph stays visible when zoomed out) ### Zoom controls - Added Zoom In (+) and Zoom Out (−) buttons to graph toolbar - Smooth animated zoom via camera.animatedZoom / animatedUnzoom (200ms) - Mouse scroll wheel clamped between minCameraRatio and maxCameraRatio Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> | 6 个月前 | |
refactor(explorer): own Ontology Hub URL state in one module (#1440) The deep-link protocol introduced in #1278 lived as bare "ontologyTab" / "ontologyEntity" literals in five places across three files, each with its own URLSearchParams plumbing and try/catch. Nothing tied the pieces together: in particular the rule that a selection written under one ontology must be cleared when the active ontology changes — otherwise a reload resolves the stale entity and jumps back to the old ontology — was a comment at one call site with no mechanism behind it. ontologyUrlState.ts now owns the parameter names as private constants and exposes the protocol as intent-named operations, with the write/clear pairing documented where both halves live. Parsing and serialization are pure functions over a search string, so they are covered by tests without a DOM; the window and history.replaceState interaction stays in thin shells. Absent parameters still read as undefined while blank ones read as empty strings, which preserves the differing presence checks the workspace shell and the tab selector each relied on. One behavior change, inherited from all five original call sites: writing the query string dropped any URL fragment, because replaceState with a bare "?..." replaces the whole tail. updateSearch now carries window.location.hash across, which fixes it for every writer at once — this module is the only place that knows how the URL is written, so it is the only place the fix belongs. Co-authored-by: Claude Fable 5 <noreply@anthropic.com> | 1 个月前 | |
fix(#768): reset ErrorBoundary retryCount only after a retry settles Previously retryCount never reset on success (removed in adb4613 to avoid resetting mid-Suspense-fallback), so unrelated transient errors across a session could permanently exhaust the 3-retry budget even though each prior retry had actually recovered. Now the counter resets via a short settle timer after a retry stays error-free, avoiding both the premature-reset and never-reset failure modes. | 3 个月前 | |
feat(explorer): add Markdown editor write path (#1349) * feat(explorer): add Markdown editing write path * fix(explorer): address markdown editor review findings * feat(explorer): add Markdown editor write path --------- Co-authored-by: Sameer Kadam <sskadam6305@gmail.com> | 1 个月前 | |
feat(explorer): add Markdown editor write path (#1349) * feat(explorer): add Markdown editing write path * fix(explorer): address markdown editor review findings * feat(explorer): add Markdown editor write path --------- Co-authored-by: Sameer Kadam <sskadam6305@gmail.com> | 1 个月前 | |
feat(explorer): redesign landing page | 6 个月前 | |
feat(explorer): add Semantica Knowledge Explorer UI with full feature set ## Folder & Project - Renamed `semantica-explorer/` → `explorer/` (cleaner path) - Browser tab title: `Semantica Knowledge Explorer` - Brand pill: `SEM` → `SKE` (tooltip: Semantica Knowledge Explorer) - Nav rail label: `Explore` → `Knowledge Explorer` - package.json name: `semantica-knowledge-explorer` - Downgraded Vite 8 → Vite 5 for Node v20.17.0 compatibility ## App Shell - Dynamic per-workspace kicker labels replacing static "Workspace" pill: Graph Studio · Vocabulary Browser · Reasoning Engine · SPARQL Query · Decision Intelligence · Knowledge Audit · Graph Governance ## Enrich Workspace — 2 new tabs ### Entity Resolution tab - Similarity threshold slider (0.50–0.99) - Run Dedup Scan → POST /api/enrich/dedup - Flagged pairs list with colour-coded score bars (red/amber/green) - Expandable inline diff: primary vs duplicate side-by-side - One-click Merge → POST /api/enrich/merge with logEvent dispatch - Dismiss per pair; Clear all button - Merge history sidebar pulled live from Registry store ### Registry tab (Document Registry) - Live chronological audit log of all KG mutations in-session - Colour-coded op-type badges: IMPORT · MERGE · ADD NODE · ADD EDGE · INFER · DELETE · EXPORT · VOCAB - Filter pills to narrow by operation type - Expandable JSON detail rows per entry - Clear log button - Entirely client-side via registryStore (no backend needed) ## Manage Workspace — 2 new tabs ### KG Overview tab - Stats chips: total nodes, edges, graph density - Node type breakdown bar chart (up to 8 types, colour-coded) - Edge type breakdown bar chart from /api/graph/stats - Top-10 most connected nodes ranked by degree - Skeleton loading states + Refresh button ### Ontology Summary tab - Read-only SKOS scheme tree (scheme → top concepts → narrower) - Concept detail panel: labels, notation, description, narrower nav - "Open Full Browser" button deep-links to Vocabulary Browser tab ## Decision Workspace polish - CausalFlowDiagram: vertical node cards connected by relationship pills - Outcome badges: colour-coded (green=approved, red=rejected, amber=deferred) - Live filter input across decision ID, category, and outcome - Animated skeleton loading while list fetches ## Graph Inspector polish - PathFlowViz: clickable node chips connected by edge-type labels; clicking a chip focuses that node in the canvas - Link Prediction button shows spinner while computing - Empty states for path trace and candidate links sections ## Registry dispatch — WebSocket - ADD_NODE events → logEvent("add-node", …) in GraphWorkspace WS handler - ADD_EDGE events → logEvent("add-edge", …) in GraphWorkspace WS handler - Import, Export, Merge already dispatched logEvent on API response ## Graph visibility overhaul ### Edge colours (were nearly transparent, now clearly visible) - edgeBackbone: rgba(…, 0.04) → rgba(…, 0.38) - edgeStructure: rgba(…, 0.009) → rgba(…, 0.28) - edgeInspection: rgba(…, 0.026) → rgba(…, 0.48) - Muted edges: 0.009–0.02 → 0.12–0.26 - Focus edges: 0.16 → 0.42 ### Edge sizes - default minSize: 0.18 → 0.9 (always at least 1 pixel wide) - path minSize: 1.8 → 2.4 - inactive/muted: hide:true → hide:false (dimmed not hidden) ### Node sizes - default sizeMultiplier: 0.72 → 0.92 - default minSize: 0.68 → 3.5 (visible at all zoom levels) - overview nodeScale: 0.66 → 0.88 - nodeTintMix (colour): 0.03 → 0.14 - nodeCoreMix (brightness): 0.52 → 0.72 ### Label budget - overview: 10 → 28 labels - structure: 36 → 60 labels - inspection: 80 → 120 labels ### Sigma settings - renderEdgeLabels: false → true (relationship type on every edge) - edgeLabelSize: — → 10 - labelRenderedSizeThreshold: 4 → 2 - labelDensity: 0.86 → 1.1 - hideLabelsOnMove: true → false (labels stay visible while panning) - hideEdgesOnMove: true → false (edges stay visible while panning) - minCameraRatio: — → 0.04 (prevents zooming inside a node) - maxCameraRatio: — → 8 (graph stays visible when zoomed out) ### Zoom controls - Added Zoom In (+) and Zoom Out (−) buttons to graph toolbar - Smooth animated zoom via camera.animatedZoom / animatedUnzoom (200ms) - Mouse scroll wheel clamped between minCameraRatio and maxCameraRatio Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> | 6 个月前 | |
feat(explorer): add Semantica Knowledge Explorer UI with full feature set ## Folder & Project - Renamed `semantica-explorer/` → `explorer/` (cleaner path) - Browser tab title: `Semantica Knowledge Explorer` - Brand pill: `SEM` → `SKE` (tooltip: Semantica Knowledge Explorer) - Nav rail label: `Explore` → `Knowledge Explorer` - package.json name: `semantica-knowledge-explorer` - Downgraded Vite 8 → Vite 5 for Node v20.17.0 compatibility ## App Shell - Dynamic per-workspace kicker labels replacing static "Workspace" pill: Graph Studio · Vocabulary Browser · Reasoning Engine · SPARQL Query · Decision Intelligence · Knowledge Audit · Graph Governance ## Enrich Workspace — 2 new tabs ### Entity Resolution tab - Similarity threshold slider (0.50–0.99) - Run Dedup Scan → POST /api/enrich/dedup - Flagged pairs list with colour-coded score bars (red/amber/green) - Expandable inline diff: primary vs duplicate side-by-side - One-click Merge → POST /api/enrich/merge with logEvent dispatch - Dismiss per pair; Clear all button - Merge history sidebar pulled live from Registry store ### Registry tab (Document Registry) - Live chronological audit log of all KG mutations in-session - Colour-coded op-type badges: IMPORT · MERGE · ADD NODE · ADD EDGE · INFER · DELETE · EXPORT · VOCAB - Filter pills to narrow by operation type - Expandable JSON detail rows per entry - Clear log button - Entirely client-side via registryStore (no backend needed) ## Manage Workspace — 2 new tabs ### KG Overview tab - Stats chips: total nodes, edges, graph density - Node type breakdown bar chart (up to 8 types, colour-coded) - Edge type breakdown bar chart from /api/graph/stats - Top-10 most connected nodes ranked by degree - Skeleton loading states + Refresh button ### Ontology Summary tab - Read-only SKOS scheme tree (scheme → top concepts → narrower) - Concept detail panel: labels, notation, description, narrower nav - "Open Full Browser" button deep-links to Vocabulary Browser tab ## Decision Workspace polish - CausalFlowDiagram: vertical node cards connected by relationship pills - Outcome badges: colour-coded (green=approved, red=rejected, amber=deferred) - Live filter input across decision ID, category, and outcome - Animated skeleton loading while list fetches ## Graph Inspector polish - PathFlowViz: clickable node chips connected by edge-type labels; clicking a chip focuses that node in the canvas - Link Prediction button shows spinner while computing - Empty states for path trace and candidate links sections ## Registry dispatch — WebSocket - ADD_NODE events → logEvent("add-node", …) in GraphWorkspace WS handler - ADD_EDGE events → logEvent("add-edge", …) in GraphWorkspace WS handler - Import, Export, Merge already dispatched logEvent on API response ## Graph visibility overhaul ### Edge colours (were nearly transparent, now clearly visible) - edgeBackbone: rgba(…, 0.04) → rgba(…, 0.38) - edgeStructure: rgba(…, 0.009) → rgba(…, 0.28) - edgeInspection: rgba(…, 0.026) → rgba(…, 0.48) - Muted edges: 0.009–0.02 → 0.12–0.26 - Focus edges: 0.16 → 0.42 ### Edge sizes - default minSize: 0.18 → 0.9 (always at least 1 pixel wide) - path minSize: 1.8 → 2.4 - inactive/muted: hide:true → hide:false (dimmed not hidden) ### Node sizes - default sizeMultiplier: 0.72 → 0.92 - default minSize: 0.68 → 3.5 (visible at all zoom levels) - overview nodeScale: 0.66 → 0.88 - nodeTintMix (colour): 0.03 → 0.14 - nodeCoreMix (brightness): 0.52 → 0.72 ### Label budget - overview: 10 → 28 labels - structure: 36 → 60 labels - inspection: 80 → 120 labels ### Sigma settings - renderEdgeLabels: false → true (relationship type on every edge) - edgeLabelSize: — → 10 - labelRenderedSizeThreshold: 4 → 2 - labelDensity: 0.86 → 1.1 - hideLabelsOnMove: true → false (labels stay visible while panning) - hideEdgesOnMove: true → false (edges stay visible while panning) - minCameraRatio: — → 0.04 (prevents zooming inside a node) - maxCameraRatio: — → 8 (graph stays visible when zoomed out) ### Zoom controls - Added Zoom In (+) and Zoom Out (−) buttons to graph toolbar - Smooth animated zoom via camera.animatedZoom / animatedUnzoom (200ms) - Mouse scroll wheel clamped between minCameraRatio and maxCameraRatio Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> | 6 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 6 个月前 | ||
| 1 个月前 | ||
| 6 个月前 | ||
| 1 个月前 | ||
| 6 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 6 个月前 |