Repository navigation
Diagram: colour an inferred species' diagram with an entity it lacks - #961
Merged
Merged
Conversation
An inferred species' diagram is the human layout, and an entity with no counterpart in that species has no graph data. Colouring the analysis read it as a leaf and threw inside the subscription, so the diagram was never coloured and the render page never ready: the render service timed out and answered 500 (mouse R-MMU-8864260, R-MMU-8878159, R-MMU-8848021 and R-MMU-1227986 with any token, pdf-export spec 002 T020). Such an entity is now not hit, as one whose graph data has no identifier. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
A single-PR fix. It belongs to spec 010 (the render service in place of Java's exporters) and was found by pdf-export spec 002 T020.
The bug
A mouse analysis report lost 4 of its 25 figures to the render service's 500. On this host, with a small over-representation token,
R-MMU-8864260,R-MMU-8878159,R-MMU-8848021andR-MMU-1227986each answered 500 after 45 s. Without a token they answered 200. Their human counterparts rendered with or without a token. The render service's log saidpage.waitForSelector: Timeout 45000ms exceeded: the render page never became ready and never reported an error.Cause
An inferred species' diagram uses the human layout. An entity with no counterpart in that species has no graph data, and the diagram service logs
Missing graph data for nodefor it. When the analysis colouring ran, it read such an entity's leaves as[node.data('graph')], which is[undefined], and then read.identifierfromundefined. TheTypeErrorwas thrown inside the subscription that colours the diagram, soappliedAnalysiswas never set. The render page then waited for colouring that never came: its own 60 s deadline was longer than the service's 45 s timeout, so the service gave up first and answered 500. The same throw also left the pathway browser's mouse diagrams uncoloured under an analysis, and no notice was shown.Fix
The colouring of one entity is now
nodeExpression(diagram/node-expression.ts). An entity with no graph data counts as not hit ([undefined]), which is how an entity whose graph data has no identifier is already treated. Every other case behaves as before. The DeltaSignal overlay already guarded against this case.Checks
node-expression.spec.tswas first run against the old logic. The no-graph-data case failed with the sameTypeErrorthe page raised.documentation/declared-differences.md.🤖 Generated with Claude Code