Repository navigation
Code review 2026-10-02: fail loudly instead of shipping a silently wrong bundle (default output unchanged) - #103
Merged
Merged
Conversation
…lently wrong bundle - Export failures raise (F2). Every export after logic_network.csv was logged and skipped, including the orphan guard's deliberate ValueError, so containment.csv/cofactors.csv/node_resolution.csv went missing while the pathway counted as built and catalog.sh moved current. Regeneration also clears the previous run's bundle files. - LNG_* switches read through src/env_flags.py (F3): exactly 0 or 1, and an unknown LNG_* name is a startup error. LNG_HANDOFF_EDGES=false used to turn the harmful handoff edges ON; LNG_BOUNDARY_HIERARCHY=true turned the adopted hierarchy OFF; typos were never read. - Failed Neo4j lookups raise (F5, F11): the modifier-set fallback was cached for the whole run; the ubiquitin lookup dropped every Ub depletion edge; containment treated a failed lookup as 'contains only itself'; node_resolution dropped every set row. - PIPELINE_SETTINGS.md: LNG_DIAGRAM_BRIDGE default is 0; the stale DS defaults are replaced by a pointer (F13). Default output unchanged: GPVI, NODAL and RAF regenerated from this branch are identical to build 20260928-1110_06ccb63 by stable id, edge for edge, and every bundle file has the same rows. Runtime tests for each guard; the old code fails them. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…oved fallbacks 14 unit tests passed in CI only because the modifier-set and participating- entity lookups fell back silently when Neo4j was unreachable, and on a developer machine they quietly queried the live database. An autouse fixture now stubs both for every test not marked database. 338 pass with Neo4j unreachable and with it up. Co-Authored-By: Claude Opus 5.5 (1M context) <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.
These are the pipeline-hygiene findings from the 2026-10-02 code review. Default output is unchanged: GPVI, NODAL and RAF regenerated from this branch match build
20260928-1110_06ccb63exactly, edge for edge by stable id, and every bundle file has the same row count.logic_network.csvwas logged and skipped. That included the orphan guard's deliberateValueError, socontainment.csv,cofactors.csvandnode_resolution.csvwere missing, the pathway counted as built, andcatalog.shmovedcurrent. Regenerating into an existing directory left stale files behind.LNG_*parsingLNG_HANDOFF_EDGES=falseturned harmful edges on.LNG_BOUNDARY_HIERARCHY=trueturned the adopted hierarchy off. Typos were never read.src/env_flags.py: a switch takes exactly0or1, and an unknownLNG_*name stops the run at startup.node_resolutiondropped every set row.LNG_DIAGRAM_BRIDGEwas listed with default1, and the DS defaults listed were stale.Tests: every guard is exercised at runtime (
test_export_failfast.pydrivesgenerate_pathway_file;test_env_flags.py;test_lookup_failures.py), and the old code fails them. Two source-text assertions were replaced by checks on the actual defaults. Default tier: 336 passed.Not in this PR: the findings that change networks, F7, F1, F10, F9 and F8:
F7 is verified in Neo4j. For example, "VAV1 Rho/Rac effectors:GDP" is GDP plus a CandidateSet of 5 GTPases, but the network requires all 5. These change benchmark numbers, so they go through a deltasignal spec with pre-registered arms.
🤖 Generated with Claude Code