Skip to content

feat(refinery): add bounded TBP mass-basis recovery - #4272

Merged
EvenSol merged 7 commits into
masterfrom
automation/3305-tbp-mass-basis-recovery
Oct 9, 2026
Merged

EvenSol merged 7 commits into
masterfrom
automation/3305-tbp-mass-basis-recovery

Conversation

@EvenSol

@EvenSol EvenSol commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

Advances #3305 with the next dependency-ready Phase-1/property-bridge increment.

Capability

  • converts the qualified liquid-volume TBP curve to an auditable ideal-additive-volume mass basis using only caller-supplied interval SG60/60 values;
  • exposes the complete-table denominator sum(Delta V_i * SG_i);
  • reports normalized bounded-range mass yield on TbpBoilingRangeProperties and direct K/degC range queries;
  • provides cumulative mass recovery at a K/degC boiling point and inverse K/degC cut points at cumulative mass recovery;
  • preserves source-node snapping, source immutability, K/degC parity, and fail-closed bounded queries.

For the focused three-cut fixture, the denominator is 84 SG-weighted liquid-volume percentage points. The 350-550 K range contributes 54.5 and therefore 64.88095238 mass%; 50 mass% inverts to 470 K. Partitioned interval mass yields close to 100%.

Model boundary and provenance

This reuses the already-qualified piecewise-linear cumulative liquid-volume curve and constant interval SG60/60 assumptions. It introduces no external dataset, empirical coefficient, fitted correlation, or licensing surface.

It is a transparent ideal-additive-volume basis conversion, not a measured weight-percent distillation curve. It does not add density-temperature correction, excess-volume or contraction modeling, D86/D1160 conversion, pseudo-component generation, molecular-weight or critical-property estimation, phase equivalence, fractionation, blending, optimization, or conversion-unit behavior.

Validation

Deterministic analytical tests cover whole-table and partial-cut yields, forward/inverse round trips, partition closure, K/degC parity, snapping, immutability, and invalid-input rejection. A Python contract protects the documentation/API linkage.

Hosted validation already established:

  • exact Spotless artifact applied to Java source and focused tests;
  • engineering-coverage unit tests passed (17/17);
  • exact hosted coverage generator output applied;
  • documentation search covered 787 Markdown files and one HTML file;
  • PaperLab replication gate passed.

A fresh full CI cycle is running on the final head. VALIDATION PENDING CI — KEEP DRAFT.

Documentation impact

Updated the refinery assay guide and characterization index with formulas, units, API usage, assumptions, provenance boundary, failure behavior, and explicit exclusions. Added the generated engineering inventory and a documentation-contract regression.

Exact base: 1db2650325cf7860f686fb4d8fa7de986b5a915a
Published head: 0dffc3dc5833915aad3066ab2d30048326817ff0

Permanent changed paths: 6. The temporary artifact-export workflow edit was restored before this final head.

Autonomous implementation occupancy after publication: 2/10 (#4272 and #4273). Ten is both the target and absolute global ceiling. No merge, auto-merge, ready-state transition, rebase, synchronization, replacement, closure, or peer-head mutation is requested.

CI repair — 2026-10-08

The merge from master introduced capacity-increase-screening agent/skill mappings without regenerating the engineering inventory. This reproduced the failing build_engineering_coverage.py --check on fde91216515318fefe89cfe8f2396fc86b962d2a.

Commit 0dffc3dc5833915aad3066ab2d30048326817ff0 regenerates only src/main/resources/neqsim/mcp/engineering-coverage.json: 250 agent mapping entries and 23 skill mapping entries. Source digests, registered capabilities, APIs and runtime behavior are unchanged. The published blob matches the locally generated file exactly.

Validation on the final repair tree (NeqSim 3.23.0, OpenJDK 17.0.20, Python 3.12):

  • python3 devtools/build_engineering_coverage.py --check — exit 0; stale-state failure reproduced before regeneration.
  • PYTHONPATH=/tmp/neqsim-final-deps python3 -m pytest devtools/test_engineering_coverage.py docs/test_refinery_tbp_mass_basis_recovery_documentation.py -q — exit 0, 18 passed.
  • python3 devtools/run_spotless.py check — exit 0, with the work-with-neqsim Maven bootstrap.
  • python3 devtools/check_documentation_search.py — exit 0, 787 Markdown pages and one HTML page.
  • PYTHONPATH=/tmp/neqsim-final-deps python3 -m pre_commit run --all-files --hook-stage pre-commit — exit 0; Spotless apply passed and changed no Java files.
  • PYTHONPATH=/tmp/neqsim-final-deps python3 -m pre_commit run --all-files --hook-stage pre-push — exit 0; Spotless and documentation search passed.
  • git diff --check — exit 0.

Documentation impact: none for this repair, because it refreshes generated discovery mappings only; the existing mass-recovery API guide is unchanged and its documentation contract passed. Fresh hosted CI is running on the repaired head. VALIDATION PENDING CI — KEEP DRAFT.


Authoritative five-of-ten exact-head coordination — 2026-10-08

Preserved exact head 0dffc3dc5833915aad3066ab2d30048326817ff0, base 44d16dc44415050cb7238d6a8a47f53c660e8f4c, open/draft state, scope, and branch history. Current master is e5bdd877038cc0eba17b011ac5182cc845aa4910. Six auxiliary workflow groups pass and Build/Test/Javadoc is 12/14 successful with Java 8 Ubuntu/Windows active. GitHub currently reports the head non-mergeable against advanced master; preserve the head and do not rebase.

Positively identified autonomous implementation occupancy is 5/10: #4272, #4274, #4275, #4276, and #4277. Ten is both the target and the absolute global ceiling. This supersedes every stale earlier roster, 20/24, bounded-overflow, three-capability, five-capability, or conflicting generic portfolio statement in this body.

#4272, #4275, #4276, and #4277 own src/main/resources/neqsim/mcp/engineering-coverage.json; #4275/#4276 additionally overlap in LoopedPipeNetwork.java, SURF_NETWORK_INTEGRATION.md, and related network tests. #4274 is campaign-catalog disjoint. Preserve every exact head and use maintainer-led integration ordering. Package 3 for #3153 remains unaccepted and unstarted until all generated-resource ownership clears.

Documentation impact is unchanged from the implementation sections above. This addition is metadata-only: no source mutation, head or base movement, workflow retry, synchronization, rebase, readiness transition, merge, replacement, closure, abandonment, or peer-head mutation was performed.


Authoritative exact-head validation — 2026-10-09

Exact head 0dffc3dc5833915aad3066ab2d30048326817ff0 is fully green:

  • Engineering capability coverage: success
  • Pre-commit checks: success
  • PaperLab replication gate: success
  • Spotless format patch: success
  • Documentation search coverage: success
  • CodeQL security analysis: success
  • full build, tests, and Javadocs: success

There are no review submissions or unresolved inline threads. The PR remains draft. Current master is e5bdd877038cc0eba17b011ac5182cc845aa4910, while this PR retains exact head 0dffc3dc... and recorded base snapshot 44d16dc...; GitHub therefore reports it non-mergeable. Per campaign continuity policy, no rebase, synchronization, force-push, replacement, closure, readiness transition, or merge was performed.

Positively identified autonomous implementation occupancy is 5/10: #4272, #4274, #4275, #4276, and #4277. Ten remains both target and absolute global ceiling. This section supersedes earlier transient CI and occupancy statements without changing the frozen capability contract or documentation impact.


Authoritative ready-state coordination — 2026-10-09

An external workflow marked this PR ready without moving exact head 0dffc3dc5833915aad3066ab2d30048326817ff0. This campaign preserves that state and did not perform the readiness transition.

All seven hosted workflow groups remain successful on the exact head, with no review submissions or unresolved inline threads. Current master is ffde2f43443ae65d57d02497e31fefb71b637555; the PR retains recorded base snapshot 44d16dc... and GitHub reports it non-mergeable. It is therefore not READY TO MERGE, despite its non-draft UI state.

Positively identified autonomous implementation occupancy is 4/10: #4272, #4274, #4275, and #4277. #4276 has merged. Ten remains both target and absolute global ceiling. No source, head, base, rebase, synchronization, force-push, replacement, closure, merge, or peer-head mutation was performed by this campaign run.

Draft restoration and four-of-ten coordination — 2026-10-09

An external workflow moved this PR to ready state without changing exact head 0dffc3dc5833915aad3066ab2d30048326817ff0. The campaign restored the PR to draft to enforce the established draft-only workflow. The head, base, branch history, source, CI runs, and review state were not changed. All seven exact-head workflow groups remain successful; GitHub still reports the PR non-mergeable against current master ffde2f43443ae65d57d02497e31fefb71b637555.

#4276 merged from final head 721a8e88eb8d9892a22c123ed5cba675c80e6514 as ffde2f43443ae65d57d02497e31fefb71b637555. Positively identified autonomous implementation occupancy is now 4/10: #4272, #4274, #4275, and #4277. Ten remains both target and absolute global ceiling.

Package 3 for #3153 remains unaccepted and unstarted: #4272, #4275, and #4277 still own src/main/resources/neqsim/mcp/engineering-coverage.json; #4275 also owns overlapping network source, tests, and the SURF guide. #4274 is campaign-catalog disjoint. No campaign source mutation, workflow retry, rebase, synchronization, force-push, replacement, closure, merge, or peer-head mutation was performed.

Verified merge and five-of-ten rotation — 2026-10-09

This PR merged from final repaired head bca7aa829a101d9fde2892ea6f6a95fee80f16b3 as current master ea7d61ac1cbfc4b25689a4e81406a7bef248ae64. Six auxiliary workflow groups succeeded. The build/test/Javadoc workflow had 12/14 successful jobs at this snapshot, with Java 8 Ubuntu and Windows still active; the repair and merge were external to this campaign.

Positively identified autonomous implementation occupancy is now 5/10: #4274, #4275, #4277, #4279, and #4280. Ten remains both target and absolute global ceiling. #4272 is removed from active capacity.

The #3153 one-active-PR gate is clear, but Package 3 remains overlap-deferred because #4275, #4277, #4279, and #4280 own src/main/resources/neqsim/mcp/engineering-coverage.json; #4275 and #4279 also overlap in the SURF guide. No campaign source mutation, workflow retry, rebase, synchronization, force-push, replacement, closure, merge, or peer-head mutation was performed by this reconciliation.

Refresh the generated agent and skill mappings against the current PR source.
Verified coverage freshness, 18 coverage/documentation tests, Spotless,
documentation search, and both all-file hook stages.

EvenSol commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator Author

Integration coordination (2026-10-09): current PR head 0dffc3dc5833915aad3066ab2d30048326817ff0 remains non-mergeable against moving master. Active overlap review identifies shared src/main/resources/neqsim/mcp/engineering-coverage.json across #4272, #4275, #4276, #4277; #4275/#4276 additionally overlap LoopedPipeNetwork.java and docs/fielddevelopment/SURF_NETWORK_INTEGRATION.md. Recommended maintainer sequence: integrate #4272 independently, reconcile #4275 and #4276 in coordinated order, then #4277; regenerate coverage inventory on each updated integration tree, run engineering coverage check, Spotless, focused tests and CI before merge. Do not resolve the generated JSON by blindly choosing ours/theirs. No branch update or conflict resolution has been performed in this comment; keep the PR draft until validated.

@EvenSol
EvenSol marked this pull request as draft October 9, 2026 04:23
@EvenSol
EvenSol marked this pull request as ready for review October 9, 2026 04:40
@EvenSol
EvenSol marked this pull request as draft October 9, 2026 05:57
@EvenSol
EvenSol marked this pull request as ready for review October 9, 2026 07:58
@EvenSol
EvenSol merged commit ea7d61a into master Oct 9, 2026
17 checks passed
@EvenSol
EvenSol deleted the automation/3305-tbp-mass-basis-recovery branch October 9, 2026 07:58
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