Files
llm-wiki/docs/graph/performance/2026-06-19-sigma-global-production-integration-result.md
2026-07-12 21:26:08 +08:00

103 lines
4.2 KiB
Markdown

# Sigma Global Renderer Production Integration Result
Date: 2026-06-19
Branch: `codex/sigma-global-renderer-integration`
Plan: `docs/plans/2026-06-19-sigma-global-renderer-integration-phased-plan.md`
## Result
Sigma/Graphology is now the production global graph renderer route for the graph-engine facade.
The final route boundary is:
- Global route: Sigma/Graphology through `sigma-global`.
- Community reading and rich detail route: DOM/SVG through `dom-svg-community`.
- Small abnormal fallback: DOM/SVG through `dom-svg-small-fallback`, only after Sigma is unavailable and the graph is below the safety threshold.
- Large abnormal fallback: aggregation safety view through `aggregation-safety-fallback`.
There is no user-visible old/new renderer switch. The old DOM/SVG global path is not a normal global main path.
## Phase 0 Gate
The implementation started only after the plan review gate cleared:
- The plan review report ended with `NO UNRESOLVED DECISIONS`.
- The implementation branch was `codex/sigma-global-renderer-integration`.
- Baseline graph-engine tests passed before production renderer work started.
## Production Evidence
The strongest production-path artifact so far is:
- `/tmp/llm-wiki-sigma-global-production-task-6-2/sigma-global-production-results.json`
Summary:
- Renderer: `sigma-global-production`.
- Production path: `true`.
- Browser: `148.0.7778.96`.
- Build commit recorded in artifact: `d2e857f`.
- Shapes: 11.
- Records: 110.
- Failed records: 0.
- Artifact schema: `1.0.0`.
- Required schema, thresholds, browser, build, run timestamp, loading-state, and production-path fields are present on every record.
Covered shapes:
- `real-snapshot-proxy`
- `nodes-1000-sparse`
- `nodes-1000-dense`
- `nodes-5000-sparse`
- `nodes-5000-dense`
- `nodes-10000-aggregation`
- `nodes-10000-high-edge`
- `oversized-community`
- `many-small-communities`
- `many-search-hits`
- `many-pin-nodes`
## Hard Gate Summary
| Gate | Production result |
|---|---:|
| Failed records | 0 |
| Wheel FPS floor | min 60.2, required >= 45 |
| Drag FPS floor | min 60.3, required >= 45 |
| Wheel frame p95 | max 17.6 ms, required <= 22.3 ms |
| Drag frame p95 | max 17.6 ms, required <= 22.3 ms |
| Initial render duration | max 0.2 ms, threshold recorded per action |
| Search duration | max 37.7 ms, threshold recorded per action |
| Drawer duration | max 82.0 ms, threshold recorded per action |
| Return global duration | max 70.5 ms, threshold recorded per action |
| Repeated-cycle memory growth | max 6.4 MB, threshold recorded per action |
| Loading state | `sigma-global-ready` on global records |
`enter_community` intentionally moves through the community route, so its loading-state set includes the non-global transition state as well as `sigma-global-ready`. Return-global records prove the production route returns to Sigma successfully.
## Route And Fallback Boundary
The facade owns renderer route switching. Workbench and offline callers continue to use `createGraphEngine` and do not receive a renderer selector.
Fallback policy:
- If Sigma is available, global graph browsing uses Sigma.
- If Sigma is unavailable for a small graph, DOM/SVG is allowed only as the emergency small fallback.
- If Sigma is unavailable for a graph above 2000 nodes, 4000 edges, or 500 nodes in one community, the route uses aggregation safety fallback instead of DOM/SVG.
- The aggregation safety view is a minimum usable failure state, not a second global graph product.
## Historical Context
Earlier comparison documents remain valid as historical evidence:
- `2026-06-19-phase-6-1-sigma-graphology-trial.md` measured the isolated Sigma candidate.
- `2026-06-19-phase-6-2-vis-network-trial.md` measured vis-network as a rejected comparison route.
- `2026-06-19-phase-6-3-aggregation-fallback-trial.md` measured aggregation as a fallback strategy.
- `2026-06-19-phase-6-4-global-renderer-route-decision.md` selected Sigma/Graphology as the route to integrate.
Those documents should not be read as current production state. This document records the production integration result.
## Residual Risk
This result is proven on the local Chromium/Playwright environment and recorded artifacts. Task 7.3 must still rerun the full final acceptance list and produce the final production-path artifact for plan closure.