fix(observability): five React defects incl. Memory Graph crash on fresh installs - #1735
Open
elhoim wants to merge 5 commits into
Open
fix(observability): five React defects incl. Memory Graph crash on fresh installs#1735elhoim wants to merge 5 commits into
elhoim wants to merge 5 commits into
Conversation
…talls The no-graph fallback returns HTTP 200 with communities and no themes, and the only guard was !data, which a truthy themeless object passes.
The success path never reset error, and `if (error)` replaces the whole page, so one transient failure pinned the Ledger to its error state permanently.
setInterval was created inside a click handler rather than an effect, leaking up to 15 minutes of setState on an unmounted component.
The section hard-coded expanded={false} and a no-op onToggle while BoardRow
still rendered the chevron, cursor-pointer and hover background, so the row
advertised itself as clickable and did nothing.
… switch Without an AbortController the slower 24h response overwrote the newer 1h one.
elhoim
force-pushed
the
fix/observability-ui
branch
from
August 3, 2026 07:01
59d90b8 to
524028c
Compare
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.
5 commits, one per fix, so each can be cherry-picked independently. Each was verified to apply cleanly onto
47df8eeby itself.bbe709a52552dad730b309e04106524028cFive React defects under
LIFEOS/PULSE/Observability/src/.app/memory/graph/page.tsx:257—data.themes.mapcrashes the whole Memory Graph route on a fresh install.handleMemoryGraphApireturns a default 200 carryingcommunitiesand nothemeswhen the graph file is absent, and the only guard is!data, which a truthy themeless object passes.themesis now optional on the interface and the call site defaults it.app/ledger/page.tsx:90— the success path never clearederror, andif (error)replaces the whole page, so one transient fetch failure pinned the Ledger to its error state permanently.app/algorithm/page.tsx:275—setIntervalcreated inside a click handler rather than an effect, leaking up to 15 minutes ofsetStateon an unmounted component. Adds a ref plus an unmount effect, matching the file's existing idiom.components/activity/WorkBoard.tsx:950— the Live-sessions section hard-codedexpanded={false}and a no-oponTogglewhileBoardRowstill rendered the chevron,cursor-pointerand hover background, so the row advertised itself as clickable and did nothing. Wired toexpandedId/setExpandedIdexactly as the sibling sections are.components/activity/CapabilityStrip.tsx:153— no AbortController or generation guard, so after a window switch the slower 24h response overwrote the newer 1h one.Verified:
tsc --noEmitoutput is byte-identical to the clean tree (confirmed by stashing and re-running) — the one remaining error is pre-existing inapp/telos/_v7/app.tsx, untouched here.next buildwas deliberately not run:generateBuildIduses a timestamp anddistDiris the trackedout/, so it would rewrite committed artifacts, andtypescript.ignoreBuildErrorsis set so it adds no checking.Testing. Commands and output are in the per-file notes above. I did not do a fresh-system install verification (contributing step 3) — these are targeted fixes verified per-file, not an install run.