Repository navigation
Conversation
…ble 4f01583e71 + d077b0ff0c; Node 22.23.4 base for CVE-2026-111497; acceptance for the tested tree with the Windows first-agent Zen exception, operator decision 54b65a84)
Replace Canvas 2D drawing in the 3D memory view with a dependency-free WebGL2 renderer: instanced nodes, batched edges, and GPU depth. Hover and click use a screen-space grid, titles stay bounded, and the force layout streams from the worker while it converges. The overview route accepts limit up to 50,000 nodes and 150,000 edges. Demo mode can synthesize that graph. Without WebGL2, or after context loss, the view falls back to the Canvas 2D renderer capped at 2,000 nodes. Signed-off-by: Dayton Allen <daytonballen@gmail.com> Co-authored-by: dayton536 <dayton536@users.noreply.github.com>
| } | ||
| /** Repeats of one kind of message share a key: digits and dates fold, so "Daily backup missing for 2026-10-25" is one card. */ | ||
| export function monitoringGuardianKey(message: string): string { | ||
| return message.split("\n")[0]!.replace(/\[[^\]]*\]/g, " ").replace(/\d+/g, "N").replace(/[^\p{L}\p{N} _:-]+/gu, " ") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem and user impact
The 3D memory graph was a Canvas 2D loop: every frame projected and depth-sorted every node, stroked every edge, and hit-tested with a linear scan. The overview endpoint also stopped at 2,000 nodes and 6,000 edges, so larger archives were only ever a sample.
Change
This branch is cut from upstream
oll4com/spaceappmainatf20c00a(1.1.9), not from this fork's oldermain.memory-graph-webgl.ts,MemoryGraph3D.tsx): instanced disc nodes and batched lines, GPU depth, no new rendering library. Colors, sizes, and focus/neighbor highlighting follow the Canvas 2D view. Camera motion updates uniforms only.memory-3d-pick.ts). A pointer query does not scan every node.showTitles, with a hard cap of 96 measured and 40 drawn labels per frame.memory-3d.test.tsstays deterministic. Larger graphs use a bounded deterministic grid. The graph is posted to the worker in chunks.GET /api/admin/memory/graph/overview?limit=defaults to 2,000 and rejects values above 50,000. Edges scale at 3 per requested node, up to 150,000.redactedNodeand the admin auth gate are unchanged. A non-default limit is part of the ETag.getContext("webgl2")fails, or onwebglcontextlost, the view uses the Canvas 2D renderer capped at 2,000 nodes / 6,000 edges and listens forwebglcontextrestored./demo-workspacecan synthesize a deterministic 2k, 10k, or 50k graph (up to 150k edges) without a backend.Verification
npm run checknpm test -w @space/web -- memory(52 passed)npm test -w @space/api -- memory-graph(37 passed)limit(parses bounded memory graph)ANGLE (Google, Vulkan 1.3.0 (SwiftShader Device (Subzero) (0x0000C0DE)), SwiftShader driver). A full 50k/150kgl.finishloop on that software rasterizer did not return in the time available, so no GPU frame-time p95 is claimed from this host. Reproduce on a laptop withnode apps/web/scripts/benchmark-memory-3d.mjs.Signed-off-by:line (Developer Certificate of Origin 1.1), and the contribution is licensed under the MIT License.Measured numbers
limit=50000, 50,000 nodes / 150,000 edgesmemory-overviewPicking was recorded by
tests/memory-3d-renderer.test.tsx(MEMORY_PICK_BENCH). The API size and time were recorded bytests/memory-graph-api.test.ts(MEMORY_OVERVIEW_BENCH) on this VM.Closes oll4com#62.