Skip to content

fix(network): fail closed on mapped compressor errors - #4328

Merged
EvenSol merged 5 commits into
masterfrom
codex/4228-fail-closed-mapped-compressor
Oct 15, 2026
Merged

EvenSol merged 5 commits into
masterfrom
codex/4228-fail-closed-mapped-compressor

Conversation

@EvenSol

@EvenSol EvenSol commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

Master integration — 2026-10-15

Integrated head d317c462e488c1761eba5cdea2b847a51699e434 incorporates master aa3b281dc7e7ec20b29ed78eba4f8fb4d780924e; verified tree 68a645ae097db90afff7efc164debda098ee46e3. Preserved both independent task-log additions and regenerated the shared coverage inventory. The mapped-compressor acceptance code and its tests remain unchanged from the reviewed PR.

Validation: 112 tests run: 111 passed, one existing skip, zero failures/errors. Stable direct formatting, both hook stages, documentation search, regenerated coverage/check and whitespace checks passed. Documentation impact: retained the existing implementation guides and task-log entries from both branches; no new API, physics or tolerance change is introduced by this integration. Earlier evidence below applies to its recorded checkpoints. Integration follows the user's explicit instruction to merge in dependency order; new-head hosted CI is tracked separately.


Coordination and merge gates — 2026-10-14

Reviewed published head: 2ba5ed80dba2cc03f4eaa6a75de8b7549e4cf9f0.

The mapped-compressor acceptance correction is published. Four new regressions fail the prior implementation; focused network suites ran 129 tests with one existing skip, and the combined #4326 trial ran 145 tests with one existing skip. Current-head CI is still running eight Java 21 jobs; completed checks pass. No current human approval is recorded.

Require the process owner, an independent network/compressor-domain reviewer and independent maintainer coverage for stricter registration/failure-result contracts. One suitably qualified independent maintainer may cover both domain and public-contract review. This single-subsystem correction does not automatically require an NRC; review compatibility of exceptions and infeasible/NaN outputs explicitly.

Integration: Preferred process lane: corrected #4328 → #4326 → repaired #4312. This is an integration/review preference, not a compile dependency. Preserve current master workflows and regenerate shared coverage after integration.


Problem and correction

A configured compressor chart must remain the model used by a mapped network edge. Earlier code could fall back to simplified physics after an exception, or accept a finite result even when the compressor reported an unsuccessful speed solve.

This PR validates enabled charts before graph mutation and again before evaluation. It accepts chart results only when Compressor.solved() is true and power, outlet pressure and temperature are finite and physically admissible. Rejection reports Compressor-Chart-Infeasible, clears stale thermal state, stores NaN power and returns the existing infeasible hydraulic penalty. Ordinary unmapped compressor behavior is unchanged.

The combined #4326/#4328 reproducer requested 100 bara, achieved 11.647 bara with an unconverged speed solve, yet previously exposed 53.132 kW as accepted network evidence. The correction rejects that result.

Current validation

Head: 2ba5ed80dba2cc03f4eaa6a75de8b7549e4cf9f0
Validated tree: e95dfb95bb4beac7269182584287944d9f7979b6
Parent: e92f6579d2a3af124e9522686c8c5461ea379bc0, including master d28b180969e248837e68b5e982374db69e11a376.

  • Four new acceptance regressions fail the previous implementation and pass this correction: unsolved finite result, subsequently disabled chart, NaN power and NaN temperature.
  • Focused network suites: 129 tests, zero failures/errors, one existing skip.
  • Combined with exact [AI-Assisted] fix(compressor): report consistent speed-solve results and convergence #4326 head 22d62de: 145 tests, 144 passed, one existing skip.
  • Spotless apply twice and check, pre-commit/pre-push hooks, documentation search, regenerated engineering coverage and whitespace checks passed.

Remains draft pending current-head CI and independent domain/public-contract review under GOVERNANCE.md. These tests establish software acceptance behavior; they do not qualify OEM maps, operating regions, field accuracy or transient behavior.

Coordination and order

Merge the corrected #4328, then #4326, then #4312 after its resume-validation repair and combined evidence tests. The #4306/#4320 flash work requires a subsequent combined process regression, including compressor forward replay and shared-host power. No independent flash solver or fallback physics is introduced here.

#4228 owns canonical network fidelity; #4148 owns map correction physics; #4312/#4188/#3154 own persistence and evidence revalidation. Keep those responsibilities separate.

Documentation impact

Updated the SURF integration guide, pipeline/network skill, task log and generated engineering coverage to describe rejection of unsolved or invalid chart results.

Refs #4228, #4146, #4147, #4148, #4188, #3154, #2911, #3298, #3153, #2899, #1332, #4322, #4312, #4326.

Coordinated foundation and remaining CI

The shared classic-mixing accumulator correction is now isolated in #4333. Merge that foundation before the coordinated #4328 → #4326 → #4312 sequence; keep the mapped-compressor fail-closed behavior and all original limits. Java 21 qualification has passed on this head. The follow-on Java 8 Ubuntu job 116059245469 failed before test execution while resolving the Surefire extensions API artifact descriptor; its Windows Java 8 sibling is still running. A single-job retry cannot start until that workflow finishes (GitHub rejected the request while it was active). This is pending CI evidence, not a source-test failure or a green-readiness claim.

Split each existing shard into two, retain all slow tests, and derive the
partition divisor from the matrix job count. Log selected classes and
retain Surefire reports for diagnosing failures. Document the CI layout.

Validated: all 102 discovered slow classes selected exactly once; shell
syntax, unchanged Maven group filters, Spotless, documentation search,
and git diff --check pass.
EvenSol added a commit that referenced this pull request Oct 14, 2026
Reuse the hermetic evidence catalog fixture from PR #4312 and the verified eight-shard slow-test partition from PR #4328. Preserve legacy required-check contexts with fail-closed aggregate gates, retain Surefire reports and allow both fast-test platforms to finish.

Include production guard regressions in the renamed Devtools workflow, fix the documentation hook filename filter, and document partitioning, measured runner wall times, and compatibility.
@EvenSol EvenSol mentioned this pull request Oct 14, 2026
EvenSol added a commit that referenced this pull request Oct 14, 2026
* Update GitHub Actions workflows and documentation references

- Renamed workflow files for clarity and consistency, updating references in various documentation files.
- Adjusted pre-commit configuration to reflect new workflow names.
- Enhanced AGENTS.md and CONTRIBUTING.md with guidelines on workflow naming conventions.
- Updated README.md and index.md to link to the correct CI build badges.
- Modified devtools scripts to align with new workflow names.
- Revised documentation on task quality gates and NIP issue tracking to reference updated workflows.
- Ensured all references to workflows in the documentation are consistent with the new naming scheme.

* chore: filter only pom*.xml

* add cantera as dependency

* fix publishing

* revert

* chore: update python 3.12 -> 3.13

* feat: Update GitHub workflows and documentation

- Renamed the publish NeqSim image workflow for clarity.
- Added a new workflow for publishing packages to Maven Central.
- Introduced a workflow for building and pushing the prebuild dev container.
- Updated references in the pre-commit configuration for documentation search coverage.
- Changed CI badge links in the README and index files to reflect updated workflow names.
- Updated documentation to reflect changes in workflow names and paths.
- Fixed references to workflows in various documentation files related to MCP protocol tests.
- Updated the daily research scan workflow name and references in the paper lab tests.
- Adjusted Java test cases to align with new workflow names.

* fix(ci): isolate routing tests and preserve complete validation evidence

Reuse the hermetic evidence catalog fixture from PR #4312 and the verified eight-shard slow-test partition from PR #4328. Preserve legacy required-check contexts with fail-closed aggregate gates, retain Surefire reports and allow both fast-test platforms to finish.

Include production guard regressions in the renamed Devtools workflow, fix the documentation hook filename filter, and document partitioning, measured runner wall times, and compatibility.

---------

Co-authored-by: Even Solbraa <41290109+EvenSol@users.noreply.github.com>
Preserve #4315 renamed workflows, eight slow-test shards, historical check contexts and build documentation. Keep #4328 physics and regression source byte-identical and regenerate the combined engineering inventory.

Validation: 125 focused network tests, zero failures/errors, one existing skip; direct Spotless apply/check, documentation search, coverage check, both pre-commit stages and whitespace checks passed. Full exact-head GitHub CI pending.
@EvenSol
EvenSol merged commit 420b444 into master Oct 15, 2026
23 checks passed
@EvenSol
EvenSol deleted the codex/4228-fail-closed-mapped-compressor branch October 15, 2026 04:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant