star-magic-program 0.396.0__tar.gz → 0.397.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/CHANGELOG.md +31 -0
  2. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/CITATION.cff +2 -2
  3. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/PKG-INFO +15 -11
  4. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/README.md +9 -9
  5. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/SESSION_LOG.md +44 -0
  6. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/UNIFIED_REGISTRY_RESIDUALS.csv +1 -0
  7. star_magic_program-0.397.0/UNIFIED_REGISTRY_VERSION.txt +1 -0
  8. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/UNIFIED_REGISTRY_XGEO_QUEUE.csv +1 -0
  9. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/UNIFIED_REGISTRY_XGEO_ROUTES.csv +1 -0
  10. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/WHITEPAPER_INDEX.md +2 -1
  11. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/_BUILD_LOG.md +3 -0
  12. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/pyproject.toml +13 -2
  13. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/star_magic_program.egg-info/PKG-INFO +15 -11
  14. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/star_magic_program.egg-info/SOURCES.txt +11 -1
  15. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/star_magic_program.egg-info/requires.txt +6 -0
  16. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_calculator.py +73 -1
  17. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_downhole_simulator/README.md +107 -0
  18. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_downhole_simulator/__init__.py +19 -1
  19. star_magic_program-0.397.0/uqff_downhole_simulator/catalog/kennetcook_2_p129_excerpt.las +139 -0
  20. star_magic_program-0.397.0/uqff_downhole_simulator/catalog/kennetcook_2_p129_excerpt.provenance.json +17 -0
  21. star_magic_program-0.397.0/uqff_downhole_simulator/catalog/scorpio_e1_sa_excerpt.las +113 -0
  22. star_magic_program-0.397.0/uqff_downhole_simulator/catalog/scorpio_e1_sa_excerpt.provenance.json +17 -0
  23. star_magic_program-0.397.0/uqff_downhole_simulator/catalog/volve_15_9_19_sr_excerpt.las +183 -0
  24. star_magic_program-0.397.0/uqff_downhole_simulator/catalog/volve_15_9_19_sr_excerpt.provenance.json +16 -0
  25. star_magic_program-0.397.0/uqff_downhole_simulator/example_register_map.json +14 -0
  26. star_magic_program-0.397.0/uqff_downhole_simulator/uqff_follower.py +95 -0
  27. star_magic_program-0.397.0/uqff_downhole_simulator/uqff_modbus.py +218 -0
  28. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_downhole_simulator/uqff_ports.py +48 -7
  29. star_magic_program-0.397.0/uqff_downhole_simulator/uqff_profile_catalog.py +211 -0
  30. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_fidelity_tests.py +142 -17
  31. star_magic_program-0.396.0/UNIFIED_REGISTRY_VERSION.txt +0 -1
  32. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/AUDIT_500_PAPER_REPORT.md +0 -0
  33. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/COMMERCIAL.md +0 -0
  34. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/LICENSE +0 -0
  35. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/LICENSE-AGPL-3.0.txt +0 -0
  36. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/LICENSE-MIT-INITIAL.txt +0 -0
  37. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/NOTICE +0 -0
  38. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/UNIFIED_REGISTRY_ANCHORS.csv +0 -0
  39. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/UNIFIED_REGISTRY_EXACT_IDENTITIES.csv +0 -0
  40. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/UNIFIED_REGISTRY_FALSIFIABILITY.md +0 -0
  41. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/UNIFIED_REGISTRY_OPEN_ITEMS.csv +0 -0
  42. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/UNIFIED_REGISTRY_PARADOX_CENSUS.csv +0 -0
  43. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/UNIFIED_REGISTRY_PREDICTIONS.csv +0 -0
  44. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/UNIFIED_REGISTRY_PROGRAM_PLAN.md +0 -0
  45. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/UNIFIED_REGISTRY_RESULTS_TABLE.md +0 -0
  46. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/UNIFIED_REGISTRY_SCHEMA.md +0 -0
  47. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/UNIFIED_REGISTRY_STATUS_REPORT.md +0 -0
  48. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/UNIFIED_REGISTRY_XGEO_CONFIRMATIONS.csv +0 -0
  49. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/UNIFIED_REGISTRY_XGEO_EXTRACTED.csv +0 -0
  50. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/notebooks/00_quickstart.ipynb +0 -0
  51. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/reference/COMPLETE_UQFF_EQUATIONS_REFERENCE.pdf +0 -0
  52. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/reference/Star-Magic_manuscript_v5.pdf +0 -0
  53. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/reference/UQFF_VALIDATION_SYNC_AUDIT.pdf +0 -0
  54. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/reference/uqff_production_arxiv.pdf +0 -0
  55. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/registry_generator.py +0 -0
  56. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/setup.cfg +0 -0
  57. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/star_magic_program.egg-info/dependency_links.txt +0 -0
  58. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/star_magic_program.egg-info/top_level.txt +0 -0
  59. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_backbone_locks.py +0 -0
  60. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_derived_constants.py +0 -0
  61. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_derived_functions.py +0 -0
  62. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_downhole_simulator/__main__.py +0 -0
  63. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_downhole_simulator/matplotlib_demo.py +0 -0
  64. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_downhole_simulator/qt6_downhole_app.py +0 -0
  65. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_downhole_simulator/sample_well_profile.csv +0 -0
  66. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_downhole_simulator/uqff_case_study.py +0 -0
  67. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_downhole_simulator/uqff_deviation.py +0 -0
  68. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_downhole_simulator/uqff_downhole_engine.py +0 -0
  69. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_downhole_simulator/uqff_gauge_specs.py +0 -0
  70. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_downhole_simulator/uqff_quartz_hpht_extension.py +0 -0
  71. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_downhole_simulator/uqff_reconciler.py +0 -0
  72. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_downhole_simulator/uqff_service_life.py +0 -0
  73. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_downhole_simulator/uqff_telemetry.py +0 -0
  74. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_downhole_simulator/uqff_tool_library.py +0 -0
  75. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_fubii_variants.py +0 -0
  76. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_material_landmarks.py +0 -0
  77. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_ngc_catalog.py +0 -0
  78. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_primitive_identities.py +0 -0
  79. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_registry_graph.py +0 -0
  80. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_registry_primitives.py +0 -0
  81. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_registry_status.py +0 -0
  82. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_registry_xgeo.py +0 -0
  83. {star_magic_program-0.396.0 → star_magic_program-0.397.0}/uqff_session_closures.py +0 -0
@@ -7,6 +7,37 @@ Versioning: [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
8
  ---
9
9
 
10
+ ## v0.397.0 — 2026-08-24 — THE CONNECTIVITY SHIP
11
+
12
+ **PAPER_2257** (new dispatch — 2,253 wired / 2,308 keys): the two-stream
13
+ architecture canonized as a standing landmark with a live-verifying dispatch
14
+ (`two_stream_verified`), Daniel's ruling verbatim, the refusal doctrine as §5.
15
+
16
+ `uqff_downhole_simulator` v1.10.0–v1.13.0:
17
+
18
+ - **v1.10.0 file-follower** — quasi-live monitoring of continuously-appended
19
+ historian exports (poll/diff/reconcile; rotation detected; caller-scheduled);
20
+ formal connectivity-tier ladder published in response to an independent
21
+ assessment (correct on no-live-connection; stale on "only simulates").
22
+ - **v1.11.0 real Modbus client** (Daniel GO on the optional pymodbus dependency) —
23
+ READ-ONLY tap, citation-mandatory register maps (none invented — no public G6
24
+ map exists), raw-struct decoding, LOOPBACK-VERIFIED against an in-process
25
+ server; gate green with or without the dependency installed.
26
+ - **v1.12.0 profile catalogue** — 6-database public-source table with honest
27
+ access notes; provenance-mandatory catalogue entries; honest LAS→profile
28
+ converter (derived conditions labeled).
29
+ - **v1.13.0 three real wells** — Volve 15/9-19 SR (North Sea), Scorpio E1
30
+ (South Australia), Kennetcook #2 P-129 (Nova Scotia). The third forced two
31
+ port upgrades: WRAPPED-LAS parsing (superseding the v1.8.0 refusal, verified
32
+ against the real file) and the DERIVED_FROM_MEASURED_BHT converter tier
33
+ (real BHT 42 °C @ TD 1,935 m from the log's own parameter block). All values
34
+ verbatim-pinned; all entries provenance-complete.
35
+
36
+ Also: v0.396.0-era portability guard held; SHIP GUARD v5 (surfaces badge
37
+ measured directly) landed mid-arc. Gate 5,816 → 5,835.
38
+
39
+ ---
40
+
10
41
  ## v0.396.0 — 2026-08-24 — THE TWO-STREAM SHIP
11
42
 
12
43
  `uqff_downhole_simulator` v1.7.0–v1.9.0 — Daniel's two-stream architecture
@@ -3,7 +3,7 @@ message: "If you use Star-Magic-Program (UQFF systematic rebuild) in your resear
3
3
  type: software
4
4
  title: "Star-Magic-Program: UQFF Systematic Rebuild"
5
5
  abbreviation: "UQFF"
6
- version: "0.396.0"
6
+ version: "0.397.0"
7
7
  date-released: "2026-08-24"
8
8
  authors:
9
9
  - family-names: "Murphy"
@@ -53,7 +53,7 @@ preferred-citation:
53
53
  - family-names: "Murphy"
54
54
  given-names: "Daniel T."
55
55
  year: 2026
56
- version: "0.396.0"
56
+ version: "0.397.0"
57
57
  url: "https://github.com/Daniel8Murphy0007/Star-Magic-Program"
58
58
  notes: >-
59
59
  Cite both the software and the relevant whitepapers by PAPER_N
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: star-magic-program
3
- Version: 0.396.0
4
- Summary: Star-Magic UQFF calculator v0.396.0: THE TWO-STREAM SHIP. 2,252 dispatches (2,307 keys), gate 5,816/0. uqff_downhole_simulator v1.7.0-v1.9.0 completes Daniel's two-stream architecture: cited tool library (8 entries, no invented vendor data), read-only ports (historian CSV + LAS 2.0 implemented, live taps declared), and the two-stream reconciler - closed-stream predictions vs live data, offsets classified, undervalued streams flagged (kick-well find: 6,083 psi unexplained). Next: PAPER_2257.
3
+ Version: 0.397.0
4
+ Summary: Star-Magic UQFF calculator v0.397.0: THE CONNECTIVITY SHIP. 2,253 dispatches (2,308 keys), gate 5,835/0. PAPER_2257 two-stream architecture landmark + uqff_downhole_simulator v1.10-v1.13: quasi-live file-follower, real Modbus client (optional pymodbus, loopback-verified), connectivity-tier ladder, and a REAL-WELL profile catalogue - Volve 15/9-19 SR, Scorpio E1 (SA), Kennetcook #2 (NS, wrapped LAS + measured BHT 42C@1935m), provenance-mandatory. Next: PAPER_2258.
5
5
  Author-email: "Daniel T. Murphy" <daniel.murphy00@enrgyone.com>
6
6
  License: AGPL-3.0-or-later OR LicenseRef-StarMagic-Commercial
7
7
  Project-URL: Homepage, https://github.com/Daniel8Murphy0007/Star-Magic-Program
@@ -30,21 +30,25 @@ Requires-Dist: sympy>=1.12
30
30
  Requires-Dist: mpmath>=1.3
31
31
  Requires-Dist: numpy>=1.24
32
32
  Requires-Dist: scipy>=1.10
33
+ Provides-Extra: modbus
34
+ Requires-Dist: pymodbus>=3.15; extra == "modbus"
35
+ Provides-Extra: gui
36
+ Requires-Dist: PyQt6; extra == "gui"
33
37
  Dynamic: license-file
34
38
 
35
39
  # Star-Magic-Program
36
40
 
37
- [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg?cacheBust=0.396.0)](https://pypi.org/project/star-magic-program/)
38
- [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg?cacheBust=0.396.0)](https://pypi.org/project/star-magic-program/)
41
+ [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg?cacheBust=0.397.0)](https://pypi.org/project/star-magic-program/)
42
+ [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg?cacheBust=0.397.0)](https://pypi.org/project/star-magic-program/)
39
43
  [![Documentation Status](https://readthedocs.org/projects/star-magic-program/badge/?version=latest)](https://star-magic-program.readthedocs.io/en/latest/?badge=latest)
40
44
  [![License: AGPL-3.0 + Commercial](https://img.shields.io/badge/License-AGPL--3.0%20%2B%20Commercial-blue.svg)](LICENSE)
41
- [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-5816%2F0-brightgreen)](uqff_fidelity_tests.py)
42
- [![Public surfaces](https://img.shields.io/badge/public_surfaces-2307-blue)](uqff_calculator.py)
43
- [![Whitepapers](https://img.shields.io/badge/whitepapers-2291-orange)](whitepapers/)
45
+ [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-5835%2F0-brightgreen)](uqff_fidelity_tests.py)
46
+ [![Public surfaces](https://img.shields.io/badge/public_surfaces-2308-blue)](uqff_calculator.py)
47
+ [![Whitepapers](https://img.shields.io/badge/whitepapers-2292-orange)](whitepapers/)
44
48
 
45
- **UQFF systematic rebuild — v0.396.0 complete-compile campaign live**
49
+ **UQFF systematic rebuild — v0.397.0 complete-compile campaign live**
46
50
 
47
- **This release (v0.396.0): THE TWO-STREAM SHIP — THE ARCHITECTURE COMPLETE.** **PAPER_2256 + `uqff_downhole_simulator` v1.6.0:** the program's first packaged industry-application module, built from Daniel's 22Aug2026 template thread (grok_cce7a73b) on same-day GO — a deep-well HPHT simulator (TD ≈ 20,300 ft) with a quartz P/T gauge string whose drift is **suppressed by the canonical lattice**: suppression = (0.58+0.32·(1−F_TRZ))·(0.52+0.38·K_MEX)·(0.68+0.27·Φ_res) = **1.0324 at the locked {0.1, 25/12, 0.84}** — drift BELOW the 0.215 %FS/yr industry baseline. **The knob ruling (Rule 2):** the template's adjustable "K_MEX"/"Φ_res" sliders were tuning gains wearing primitive names — canonicals now LOCKED in-physics (verified live by the dispatch on every call), sliders renamed `k_structural_trim`/`phi_coupling_trim`. **v1.1.0 extensions (Daniel-directed):** N-gauge strings (`make_sensor_string`); real well profiles from CSV (`load_well_profile_csv`; the shipped sample carries an HPHT overpressure kick the linear model cannot see — 18,405 vs 9,313 psi at the deepest gauge); and **twin-gauge drift-comparison mode** — every station carries a conventional reference gauge, and away from the clip band the measured conventional/UQFF ratio EQUALS the canonical suppression (1.0325 measured vs 1.0324 predicted across a 12-gauge string on the real profile) — the PAPER_2250 quartz bench test's complete simulation instrument. **v1.2.0 extension:** service-life drift ACCUMULATION (`ServiceLifeSimulator`) — the rates integrated over simulated service years, twin-leg divergence curves (2-3 psi/yr separation per station at FS 30,000 psi, 10-15 psi at a 5-yr horizon), recalibration resets, years-to-error-budget arithmetic; the accumulated-error ratio converges to the canonical suppression at every station. **v1.3.0 extension:** field-telemetry realism (`TelemetryRecorder`) — 1-reading/min timestamped acquisition with line dropouts, stuck gauges and spikes, historian quality flags, and a scored QC pipeline (frozen-value detection 1.0/1.0; Hampel despiker with common-mode veto, spike precision 0.83-1.0) exporting field-historian-style CSVs. **v1.4.0 extension:** depth-sweep case-study mode (`case_study`/`write_markdown` + CLI) — where the advantage is largest: 2.04 psi/yr flat below the HPHT knees compounding to 3.04 psi/yr at 20,000 ft (4.21 at 27,000 ft on a 30,000-ft well), rendered as a one-page customer case with the honest DERIVED_HYBRID note. **v1.5.0 extension:** real-datasheet gauge specs (`GaugeSpec`/`GAUGE_SPECS`) — web-verified GEO PSI GEOQ 177 (Quartzdyne) presets with mandatory citations (uncited specs rejected in code), plumbed through every layer; the suppression ratio is baseline-independent while the psi/yr story honestly scales with the cited spec bound. **v1.6.0 extensions:** wellbore deviation (MD/TVD surveys — a 60-deg tangent reads 6,525 vs the vertical model's 9,315 psi at the deepest gauge), multi-well batch runs (ratio invariant across geometries), and a headless CLI (`python -m uqff_downhole_simulator run|service-life|telemetry|case-study`). The 2026-08-23 extension list is complete. **v1.7.0 (two-stream build, piece 1): the tool library** — cited catalog of 8 toolstring entries (quartz twins, piezoresistive class with ChampionX-cited exponential drift form, vibrating wire/DTS/thermocouple as PARAMETERS_USER_SUPPLIED refusing invented numbers, and the G6 Modbus-RS485 surface interface declared as the ports-layer target) + ToolString composition + station rating checks (catches a 177 °C gauge in the 217 °C kick zone). **v1.8.0 (two-stream build, piece 2): the ports/plug-in layer** — READ-ONLY ingest to the normalized LiveStream form: historian-CSV and LAS 2.0 readers IMPLEMENTED (round-trip verified against the v1.3.0 telemetry export; wrapped LAS refused, not mis-parsed), live-protocol taps (modbus_g6/witsml/opcua) DECLARED and refusing until site details exist, `register_port()` for site plug-ins, CLI `ingest` subcommand. **v1.9.0 (piece 3 — the architecture COMPLETE): the two-stream reconciler** — per-station offset series classified IN_FAMILY / CALIBRATION_OFFSET / DRIFT_CONSISTENT / TRANSIENTS / UNEXPLAINED with disclosed thresholds; validated on four scenarios incl. THE FIND: the kick well reconciled against a linear-gradient assumption flags 610/4,448/6,083 psi unexplained offsets — the closed stream exposing the undervalued data stream. CLI `reconcile` subcommand. Sixteen package files (14 modules incl. the headless CLI + README + sample profile), installable package, engine headless by design, DERIVED_HYBRID with every industry anchor inline-commented, gate-verified per run. **Totals: 2,252 wired (2,307 DISPATCH keys) / gate 5,816 green / 4,179 defs. Next paper: PAPER_2257.**
51
+ **This release (v0.397.0): THE CONNECTIVITY SHIP — THE LIVE STREAM GETS ITS DOORS, AND REAL WELLS ENTER THE REPO.** **PAPER_2256 + `uqff_downhole_simulator` v1.6.0:** the program's first packaged industry-application module, built from Daniel's 22Aug2026 template thread (grok_cce7a73b) on same-day GO — a deep-well HPHT simulator (TD ≈ 20,300 ft) with a quartz P/T gauge string whose drift is **suppressed by the canonical lattice**: suppression = (0.58+0.32·(1−F_TRZ))·(0.52+0.38·K_MEX)·(0.68+0.27·Φ_res) = **1.0324 at the locked {0.1, 25/12, 0.84}** — drift BELOW the 0.215 %FS/yr industry baseline. **The knob ruling (Rule 2):** the template's adjustable "K_MEX"/"Φ_res" sliders were tuning gains wearing primitive names — canonicals now LOCKED in-physics (verified live by the dispatch on every call), sliders renamed `k_structural_trim`/`phi_coupling_trim`. **v1.1.0 extensions (Daniel-directed):** N-gauge strings (`make_sensor_string`); real well profiles from CSV (`load_well_profile_csv`; the shipped sample carries an HPHT overpressure kick the linear model cannot see — 18,405 vs 9,313 psi at the deepest gauge); and **twin-gauge drift-comparison mode** — every station carries a conventional reference gauge, and away from the clip band the measured conventional/UQFF ratio EQUALS the canonical suppression (1.0325 measured vs 1.0324 predicted across a 12-gauge string on the real profile) — the PAPER_2250 quartz bench test's complete simulation instrument. **v1.2.0 extension:** service-life drift ACCUMULATION (`ServiceLifeSimulator`) — the rates integrated over simulated service years, twin-leg divergence curves (2-3 psi/yr separation per station at FS 30,000 psi, 10-15 psi at a 5-yr horizon), recalibration resets, years-to-error-budget arithmetic; the accumulated-error ratio converges to the canonical suppression at every station. **v1.3.0 extension:** field-telemetry realism (`TelemetryRecorder`) — 1-reading/min timestamped acquisition with line dropouts, stuck gauges and spikes, historian quality flags, and a scored QC pipeline (frozen-value detection 1.0/1.0; Hampel despiker with common-mode veto, spike precision 0.83-1.0) exporting field-historian-style CSVs. **v1.4.0 extension:** depth-sweep case-study mode (`case_study`/`write_markdown` + CLI) — where the advantage is largest: 2.04 psi/yr flat below the HPHT knees compounding to 3.04 psi/yr at 20,000 ft (4.21 at 27,000 ft on a 30,000-ft well), rendered as a one-page customer case with the honest DERIVED_HYBRID note. **v1.5.0 extension:** real-datasheet gauge specs (`GaugeSpec`/`GAUGE_SPECS`) — web-verified GEO PSI GEOQ 177 (Quartzdyne) presets with mandatory citations (uncited specs rejected in code), plumbed through every layer; the suppression ratio is baseline-independent while the psi/yr story honestly scales with the cited spec bound. **v1.6.0 extensions:** wellbore deviation (MD/TVD surveys — a 60-deg tangent reads 6,525 vs the vertical model's 9,315 psi at the deepest gauge), multi-well batch runs (ratio invariant across geometries), and a headless CLI (`python -m uqff_downhole_simulator run|service-life|telemetry|case-study`). The 2026-08-23 extension list is complete. **v1.7.0 (two-stream build, piece 1): the tool library** — cited catalog of 8 toolstring entries (quartz twins, piezoresistive class with ChampionX-cited exponential drift form, vibrating wire/DTS/thermocouple as PARAMETERS_USER_SUPPLIED refusing invented numbers, and the G6 Modbus-RS485 surface interface declared as the ports-layer target) + ToolString composition + station rating checks (catches a 177 °C gauge in the 217 °C kick zone). **v1.8.0 (two-stream build, piece 2): the ports/plug-in layer** — READ-ONLY ingest to the normalized LiveStream form: historian-CSV and LAS 2.0 readers IMPLEMENTED (round-trip verified against the v1.3.0 telemetry export; wrapped LAS refused, not mis-parsed), live-protocol taps (modbus_g6/witsml/opcua) DECLARED and refusing until site details exist, `register_port()` for site plug-ins, CLI `ingest` subcommand. **v1.9.0 (piece 3 — the architecture COMPLETE): the two-stream reconciler** — per-station offset series classified IN_FAMILY / CALIBRATION_OFFSET / DRIFT_CONSISTENT / TRANSIENTS / UNEXPLAINED with disclosed thresholds; validated on four scenarios incl. THE FIND: the kick well reconciled against a linear-gradient assumption flags 610/4,448/6,083 psi unexplained offsets — the closed stream exposing the undervalued data stream. CLI `reconcile` subcommand. **PAPER_2257** canonizes the architecture with a live-verifying dispatch. **v1.10.0 (connectivity tier 3):** `HistorianFollower` — quasi-live monitoring of continuously-appended historian exports with per-poll reconciliation, zero network code; formal connectivity-status ladder published (simulate / offline-ingest / file-follow built; live protocol tier 4 now REAL CODE: v1.11.0 Modbus client behind optional `pip install pymodbus`, citation-mandatory register maps, loopback-verified against an in-process server; witsml/opcua remain declared-refusing). **v1.12.0: the profile catalogue** — REAL public well data in the repo: an Equinor Volve well 15/9-19 SR verbatim log excerpt (cited, provenance-mandatory sidecar) ingesting through the las2 port with an honest LAS→profile converter (DERIVED_GRADIENTS labeled when logs carry no T/P curves) and a 6-database public-source table (KGS, Volve, DOE GDR/FORGE, NLOG, state regulators, offshore nationals) with honest access notes. **v1.13.0: three real wells catalogued** — Volve 15/9-19 SR (North Sea) + Scorpio E1 (South Australia, −99999-NULL dialect) + Kennetcook #2 P-129 (Nova Scotia, WRAPPED mode with a REAL measured BHT 42 °C @ 1,935 m) — driving two port upgrades: wrapped-LAS parsing (superseding the refusal, verified against the real file) and a DERIVED_FROM_MEASURED_BHT converter tier. Every value verbatim, every entry provenance-complete, all gate-pinned. Sixteen package files (14 modules incl. the headless CLI + README + sample profile), installable package, engine headless by design, DERIVED_HYBRID with every industry anchor inline-commented, gate-verified per run. **Totals: 2,253 wired (2,308 DISPATCH keys) / gate 5,835 green / 4,180 defs. Next paper: PAPER_2257.**
48
52
 
49
53
  Author: Daniel T. Murphy · Star-Magic Research Program
50
54
  License: AGPL-3.0-or-later OR Commercial
@@ -102,7 +106,7 @@ Mizuno, Rossi).
102
106
  Full framework physics lives in the whitepaper corpus — the physics is the
103
107
  whitepapers; the calculator computes what the whitepapers derive.
104
108
 
105
- ## What is currently shipped (v0.396.0)
109
+ ## What is currently shipped (v0.397.0)
106
110
 
107
111
  ### Wiring campaign — LIVE (see `CLAUDE.md` charter)
108
112
 
@@ -110,7 +114,7 @@ Sequential wiring of all 2,255 whitepapers, starting at PAPER_001.
110
114
  Authorized 2026-07-28: autonomous band sessions, ship per session via
111
115
  `ship.ps1`, full stop at PAPER_500 for manual review.
112
116
 
113
- **Wired: 2,252 distinct dispatches (2307 DISPATCH keys incl. the 55 canonical alias numbers 2179-2233)** (one per paper, Rule B closed). **Complete-compile frontier: PAPER_001-1300** (+ b-variants) fully captured over a **1766-function primitive-sourced equation library** — every equation and section (core + Session-225 + Production Framework + Cosmogenesis Lagrangian + VDS/DVP/BSH + Kozima-LENR K.1-K.6) via _common_uqff_blocks, with paper-specific §B DVP prime ladder (gate-guarded), 40/40+ linked-paper mapping, and a campaign-aware XGEO chain.
117
+ **Wired: 2,253 distinct dispatches (2308 DISPATCH keys incl. the 55 canonical alias numbers 2179-2233)** (one per paper, Rule B closed). **Complete-compile frontier: PAPER_001-1300** (+ b-variants) fully captured over a **1766-function primitive-sourced equation library** — every equation and section (core + Session-225 + Production Framework + Cosmogenesis Lagrangian + VDS/DVP/BSH + Kozima-LENR K.1-K.6) via _common_uqff_blocks, with paper-specific §B DVP prime ladder (gate-guarded), 40/40+ linked-paper mapping, and a campaign-aware XGEO chain.
114
118
 
115
119
  **Derived-constants catalog (v0.344.0):** all **1,272 unique predecessor-registry derived constants** wired and callable via `uqff_derived_constants.py` — e.g. `derived_constant("alpha_inverse")` → 137.0 (PAPER_1167), `derived_constant("astro_BH_entropy_coeff")` → 0.24833 (PAPER_594). 661 numeric, routes + provenance preserved.
116
120
 
@@ -1,16 +1,16 @@
1
1
  # Star-Magic-Program
2
2
 
3
- [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg?cacheBust=0.396.0)](https://pypi.org/project/star-magic-program/)
4
- [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg?cacheBust=0.396.0)](https://pypi.org/project/star-magic-program/)
3
+ [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg?cacheBust=0.397.0)](https://pypi.org/project/star-magic-program/)
4
+ [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg?cacheBust=0.397.0)](https://pypi.org/project/star-magic-program/)
5
5
  [![Documentation Status](https://readthedocs.org/projects/star-magic-program/badge/?version=latest)](https://star-magic-program.readthedocs.io/en/latest/?badge=latest)
6
6
  [![License: AGPL-3.0 + Commercial](https://img.shields.io/badge/License-AGPL--3.0%20%2B%20Commercial-blue.svg)](LICENSE)
7
- [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-5816%2F0-brightgreen)](uqff_fidelity_tests.py)
8
- [![Public surfaces](https://img.shields.io/badge/public_surfaces-2307-blue)](uqff_calculator.py)
9
- [![Whitepapers](https://img.shields.io/badge/whitepapers-2291-orange)](whitepapers/)
7
+ [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-5835%2F0-brightgreen)](uqff_fidelity_tests.py)
8
+ [![Public surfaces](https://img.shields.io/badge/public_surfaces-2308-blue)](uqff_calculator.py)
9
+ [![Whitepapers](https://img.shields.io/badge/whitepapers-2292-orange)](whitepapers/)
10
10
 
11
- **UQFF systematic rebuild — v0.396.0 complete-compile campaign live**
11
+ **UQFF systematic rebuild — v0.397.0 complete-compile campaign live**
12
12
 
13
- **This release (v0.396.0): THE TWO-STREAM SHIP — THE ARCHITECTURE COMPLETE.** **PAPER_2256 + `uqff_downhole_simulator` v1.6.0:** the program's first packaged industry-application module, built from Daniel's 22Aug2026 template thread (grok_cce7a73b) on same-day GO — a deep-well HPHT simulator (TD ≈ 20,300 ft) with a quartz P/T gauge string whose drift is **suppressed by the canonical lattice**: suppression = (0.58+0.32·(1−F_TRZ))·(0.52+0.38·K_MEX)·(0.68+0.27·Φ_res) = **1.0324 at the locked {0.1, 25/12, 0.84}** — drift BELOW the 0.215 %FS/yr industry baseline. **The knob ruling (Rule 2):** the template's adjustable "K_MEX"/"Φ_res" sliders were tuning gains wearing primitive names — canonicals now LOCKED in-physics (verified live by the dispatch on every call), sliders renamed `k_structural_trim`/`phi_coupling_trim`. **v1.1.0 extensions (Daniel-directed):** N-gauge strings (`make_sensor_string`); real well profiles from CSV (`load_well_profile_csv`; the shipped sample carries an HPHT overpressure kick the linear model cannot see — 18,405 vs 9,313 psi at the deepest gauge); and **twin-gauge drift-comparison mode** — every station carries a conventional reference gauge, and away from the clip band the measured conventional/UQFF ratio EQUALS the canonical suppression (1.0325 measured vs 1.0324 predicted across a 12-gauge string on the real profile) — the PAPER_2250 quartz bench test's complete simulation instrument. **v1.2.0 extension:** service-life drift ACCUMULATION (`ServiceLifeSimulator`) — the rates integrated over simulated service years, twin-leg divergence curves (2-3 psi/yr separation per station at FS 30,000 psi, 10-15 psi at a 5-yr horizon), recalibration resets, years-to-error-budget arithmetic; the accumulated-error ratio converges to the canonical suppression at every station. **v1.3.0 extension:** field-telemetry realism (`TelemetryRecorder`) — 1-reading/min timestamped acquisition with line dropouts, stuck gauges and spikes, historian quality flags, and a scored QC pipeline (frozen-value detection 1.0/1.0; Hampel despiker with common-mode veto, spike precision 0.83-1.0) exporting field-historian-style CSVs. **v1.4.0 extension:** depth-sweep case-study mode (`case_study`/`write_markdown` + CLI) — where the advantage is largest: 2.04 psi/yr flat below the HPHT knees compounding to 3.04 psi/yr at 20,000 ft (4.21 at 27,000 ft on a 30,000-ft well), rendered as a one-page customer case with the honest DERIVED_HYBRID note. **v1.5.0 extension:** real-datasheet gauge specs (`GaugeSpec`/`GAUGE_SPECS`) — web-verified GEO PSI GEOQ 177 (Quartzdyne) presets with mandatory citations (uncited specs rejected in code), plumbed through every layer; the suppression ratio is baseline-independent while the psi/yr story honestly scales with the cited spec bound. **v1.6.0 extensions:** wellbore deviation (MD/TVD surveys — a 60-deg tangent reads 6,525 vs the vertical model's 9,315 psi at the deepest gauge), multi-well batch runs (ratio invariant across geometries), and a headless CLI (`python -m uqff_downhole_simulator run|service-life|telemetry|case-study`). The 2026-08-23 extension list is complete. **v1.7.0 (two-stream build, piece 1): the tool library** — cited catalog of 8 toolstring entries (quartz twins, piezoresistive class with ChampionX-cited exponential drift form, vibrating wire/DTS/thermocouple as PARAMETERS_USER_SUPPLIED refusing invented numbers, and the G6 Modbus-RS485 surface interface declared as the ports-layer target) + ToolString composition + station rating checks (catches a 177 °C gauge in the 217 °C kick zone). **v1.8.0 (two-stream build, piece 2): the ports/plug-in layer** — READ-ONLY ingest to the normalized LiveStream form: historian-CSV and LAS 2.0 readers IMPLEMENTED (round-trip verified against the v1.3.0 telemetry export; wrapped LAS refused, not mis-parsed), live-protocol taps (modbus_g6/witsml/opcua) DECLARED and refusing until site details exist, `register_port()` for site plug-ins, CLI `ingest` subcommand. **v1.9.0 (piece 3 — the architecture COMPLETE): the two-stream reconciler** — per-station offset series classified IN_FAMILY / CALIBRATION_OFFSET / DRIFT_CONSISTENT / TRANSIENTS / UNEXPLAINED with disclosed thresholds; validated on four scenarios incl. THE FIND: the kick well reconciled against a linear-gradient assumption flags 610/4,448/6,083 psi unexplained offsets — the closed stream exposing the undervalued data stream. CLI `reconcile` subcommand. Sixteen package files (14 modules incl. the headless CLI + README + sample profile), installable package, engine headless by design, DERIVED_HYBRID with every industry anchor inline-commented, gate-verified per run. **Totals: 2,252 wired (2,307 DISPATCH keys) / gate 5,816 green / 4,179 defs. Next paper: PAPER_2257.**
13
+ **This release (v0.397.0): THE CONNECTIVITY SHIP — THE LIVE STREAM GETS ITS DOORS, AND REAL WELLS ENTER THE REPO.** **PAPER_2256 + `uqff_downhole_simulator` v1.6.0:** the program's first packaged industry-application module, built from Daniel's 22Aug2026 template thread (grok_cce7a73b) on same-day GO — a deep-well HPHT simulator (TD ≈ 20,300 ft) with a quartz P/T gauge string whose drift is **suppressed by the canonical lattice**: suppression = (0.58+0.32·(1−F_TRZ))·(0.52+0.38·K_MEX)·(0.68+0.27·Φ_res) = **1.0324 at the locked {0.1, 25/12, 0.84}** — drift BELOW the 0.215 %FS/yr industry baseline. **The knob ruling (Rule 2):** the template's adjustable "K_MEX"/"Φ_res" sliders were tuning gains wearing primitive names — canonicals now LOCKED in-physics (verified live by the dispatch on every call), sliders renamed `k_structural_trim`/`phi_coupling_trim`. **v1.1.0 extensions (Daniel-directed):** N-gauge strings (`make_sensor_string`); real well profiles from CSV (`load_well_profile_csv`; the shipped sample carries an HPHT overpressure kick the linear model cannot see — 18,405 vs 9,313 psi at the deepest gauge); and **twin-gauge drift-comparison mode** — every station carries a conventional reference gauge, and away from the clip band the measured conventional/UQFF ratio EQUALS the canonical suppression (1.0325 measured vs 1.0324 predicted across a 12-gauge string on the real profile) — the PAPER_2250 quartz bench test's complete simulation instrument. **v1.2.0 extension:** service-life drift ACCUMULATION (`ServiceLifeSimulator`) — the rates integrated over simulated service years, twin-leg divergence curves (2-3 psi/yr separation per station at FS 30,000 psi, 10-15 psi at a 5-yr horizon), recalibration resets, years-to-error-budget arithmetic; the accumulated-error ratio converges to the canonical suppression at every station. **v1.3.0 extension:** field-telemetry realism (`TelemetryRecorder`) — 1-reading/min timestamped acquisition with line dropouts, stuck gauges and spikes, historian quality flags, and a scored QC pipeline (frozen-value detection 1.0/1.0; Hampel despiker with common-mode veto, spike precision 0.83-1.0) exporting field-historian-style CSVs. **v1.4.0 extension:** depth-sweep case-study mode (`case_study`/`write_markdown` + CLI) — where the advantage is largest: 2.04 psi/yr flat below the HPHT knees compounding to 3.04 psi/yr at 20,000 ft (4.21 at 27,000 ft on a 30,000-ft well), rendered as a one-page customer case with the honest DERIVED_HYBRID note. **v1.5.0 extension:** real-datasheet gauge specs (`GaugeSpec`/`GAUGE_SPECS`) — web-verified GEO PSI GEOQ 177 (Quartzdyne) presets with mandatory citations (uncited specs rejected in code), plumbed through every layer; the suppression ratio is baseline-independent while the psi/yr story honestly scales with the cited spec bound. **v1.6.0 extensions:** wellbore deviation (MD/TVD surveys — a 60-deg tangent reads 6,525 vs the vertical model's 9,315 psi at the deepest gauge), multi-well batch runs (ratio invariant across geometries), and a headless CLI (`python -m uqff_downhole_simulator run|service-life|telemetry|case-study`). The 2026-08-23 extension list is complete. **v1.7.0 (two-stream build, piece 1): the tool library** — cited catalog of 8 toolstring entries (quartz twins, piezoresistive class with ChampionX-cited exponential drift form, vibrating wire/DTS/thermocouple as PARAMETERS_USER_SUPPLIED refusing invented numbers, and the G6 Modbus-RS485 surface interface declared as the ports-layer target) + ToolString composition + station rating checks (catches a 177 °C gauge in the 217 °C kick zone). **v1.8.0 (two-stream build, piece 2): the ports/plug-in layer** — READ-ONLY ingest to the normalized LiveStream form: historian-CSV and LAS 2.0 readers IMPLEMENTED (round-trip verified against the v1.3.0 telemetry export; wrapped LAS refused, not mis-parsed), live-protocol taps (modbus_g6/witsml/opcua) DECLARED and refusing until site details exist, `register_port()` for site plug-ins, CLI `ingest` subcommand. **v1.9.0 (piece 3 — the architecture COMPLETE): the two-stream reconciler** — per-station offset series classified IN_FAMILY / CALIBRATION_OFFSET / DRIFT_CONSISTENT / TRANSIENTS / UNEXPLAINED with disclosed thresholds; validated on four scenarios incl. THE FIND: the kick well reconciled against a linear-gradient assumption flags 610/4,448/6,083 psi unexplained offsets — the closed stream exposing the undervalued data stream. CLI `reconcile` subcommand. **PAPER_2257** canonizes the architecture with a live-verifying dispatch. **v1.10.0 (connectivity tier 3):** `HistorianFollower` — quasi-live monitoring of continuously-appended historian exports with per-poll reconciliation, zero network code; formal connectivity-status ladder published (simulate / offline-ingest / file-follow built; live protocol tier 4 now REAL CODE: v1.11.0 Modbus client behind optional `pip install pymodbus`, citation-mandatory register maps, loopback-verified against an in-process server; witsml/opcua remain declared-refusing). **v1.12.0: the profile catalogue** — REAL public well data in the repo: an Equinor Volve well 15/9-19 SR verbatim log excerpt (cited, provenance-mandatory sidecar) ingesting through the las2 port with an honest LAS→profile converter (DERIVED_GRADIENTS labeled when logs carry no T/P curves) and a 6-database public-source table (KGS, Volve, DOE GDR/FORGE, NLOG, state regulators, offshore nationals) with honest access notes. **v1.13.0: three real wells catalogued** — Volve 15/9-19 SR (North Sea) + Scorpio E1 (South Australia, −99999-NULL dialect) + Kennetcook #2 P-129 (Nova Scotia, WRAPPED mode with a REAL measured BHT 42 °C @ 1,935 m) — driving two port upgrades: wrapped-LAS parsing (superseding the refusal, verified against the real file) and a DERIVED_FROM_MEASURED_BHT converter tier. Every value verbatim, every entry provenance-complete, all gate-pinned. Sixteen package files (14 modules incl. the headless CLI + README + sample profile), installable package, engine headless by design, DERIVED_HYBRID with every industry anchor inline-commented, gate-verified per run. **Totals: 2,253 wired (2,308 DISPATCH keys) / gate 5,835 green / 4,180 defs. Next paper: PAPER_2257.**
14
14
 
15
15
  Author: Daniel T. Murphy · Star-Magic Research Program
16
16
  License: AGPL-3.0-or-later OR Commercial
@@ -68,7 +68,7 @@ Mizuno, Rossi).
68
68
  Full framework physics lives in the whitepaper corpus — the physics is the
69
69
  whitepapers; the calculator computes what the whitepapers derive.
70
70
 
71
- ## What is currently shipped (v0.396.0)
71
+ ## What is currently shipped (v0.397.0)
72
72
 
73
73
  ### Wiring campaign — LIVE (see `CLAUDE.md` charter)
74
74
 
@@ -76,7 +76,7 @@ Sequential wiring of all 2,255 whitepapers, starting at PAPER_001.
76
76
  Authorized 2026-07-28: autonomous band sessions, ship per session via
77
77
  `ship.ps1`, full stop at PAPER_500 for manual review.
78
78
 
79
- **Wired: 2,252 distinct dispatches (2307 DISPATCH keys incl. the 55 canonical alias numbers 2179-2233)** (one per paper, Rule B closed). **Complete-compile frontier: PAPER_001-1300** (+ b-variants) fully captured over a **1766-function primitive-sourced equation library** — every equation and section (core + Session-225 + Production Framework + Cosmogenesis Lagrangian + VDS/DVP/BSH + Kozima-LENR K.1-K.6) via _common_uqff_blocks, with paper-specific §B DVP prime ladder (gate-guarded), 40/40+ linked-paper mapping, and a campaign-aware XGEO chain.
79
+ **Wired: 2,253 distinct dispatches (2308 DISPATCH keys incl. the 55 canonical alias numbers 2179-2233)** (one per paper, Rule B closed). **Complete-compile frontier: PAPER_001-1300** (+ b-variants) fully captured over a **1766-function primitive-sourced equation library** — every equation and section (core + Session-225 + Production Framework + Cosmogenesis Lagrangian + VDS/DVP/BSH + Kozima-LENR K.1-K.6) via _common_uqff_blocks, with paper-specific §B DVP prime ladder (gate-guarded), 40/40+ linked-paper mapping, and a campaign-aware XGEO chain.
80
80
 
81
81
  **Derived-constants catalog (v0.344.0):** all **1,272 unique predecessor-registry derived constants** wired and callable via `uqff_derived_constants.py` — e.g. `derived_constant("alpha_inverse")` → 137.0 (PAPER_1167), `derived_constant("astro_BH_entropy_coeff")` → 0.24833 (PAPER_594). 661 numeric, routes + provenance preserved.
82
82
 
@@ -11848,3 +11848,47 @@ release paragraph/campaign/shipped header; CHANGELOG + _BUILD_LOG +
11848
11848
  SHIP_MESSAGE + RULINGS trail; 10 TWOSTREAM_ARC trail rows. Zero calculator
11849
11849
  physics changes; zero new dispatches (ratchet untouched). Awaiting Daniel:
11850
11850
  `.\ship.ps1` (clear .git/index.lock first).
11851
+
11852
+ ## Entry 269 — 2026-08-24 — v0.397.0 THE CONNECTIVITY SHIP (PAPER_2257 + downhole v1.10–v1.13)
11853
+
11854
+ The session that answered "can this program read deployed sensors?" with built
11855
+ code and real wells:
11856
+
11857
+ 1. PAPER_2257 authored + wired (2,253 wired / 2,308 keys): the two-stream
11858
+ architecture landmark; dispatch live-verifies suppression lock, ratio
11859
+ equality, citations, port statuses, and a micro reconciliation per call;
11860
+ refusal doctrine canonized §5. WHITEPAPER_INDEX flipped; residual ratchet
11861
+ fed; whitepapers 2,292.
11862
+ 2. Independent connectivity assessment adjudicated: CORRECT on no live
11863
+ connection (the declared-refusing tier, by design); STALE on "only
11864
+ simulates" (v1.8.0 offline ingest of real exports already existed).
11865
+ Connectivity-tier ladder published (simulate / offline-ingest /
11866
+ file-follow / live-protocol).
11867
+ 3. v1.10.0 `uqff_follower.py`: HistorianFollower — poll/diff/reconcile on
11868
+ continuously-appended exports; rotation detected; missing file soft error;
11869
+ caller-scheduled. Tier 3 live today with zero network code.
11870
+ 4. v1.11.0 `uqff_modbus.py` (Daniel GO on optional pymodbus): READ-ONLY
11871
+ ModbusHistorianTap; register maps user-supplied + citation-mandatory (no
11872
+ public G6 map exists — none invented; example labeled TEST_FIXTURE);
11873
+ raw-struct decode; LOOPBACK-VERIFIED (in-process server, exact float32/
11874
+ uint16 recovery); registry status reflects dependency presence; gate
11875
+ carries BOTH branches (green on Daniel's no-pymodbus Windows).
11876
+ 5. v1.12.0 `uqff_profile_catalog.py`: PROFILE_SOURCES (6 public databases,
11877
+ honest access notes — GDR/KGS binary/zip barriers documented after live
11878
+ fetch attempts); provenance-mandatory CATALOG; honest las_to_profile.
11879
+ 6. v1.13.0 THREE REAL WELLS, one at a time per Daniel's order, each verbatim
11880
+ + provenance-sidecar'd + test-verified: Volve 15/9-19 SR (Statoil, North
11881
+ Sea; GR[0]=5.3274 verbatim); Scorpio E1 (SA 6038-187; -99999-NULL
11882
+ dialect); Kennetcook #2 P-129 (Nova Scotia, Schlumberger 2007; WRAP. YES
11883
+ PETREL export + REAL BHT 42.0 °C @ TD 1,935 m). Real data forced two
11884
+ upgrades: wrapped-LAS parsing in read_las (SUPERSEDES the v1.8.0 refusal,
11885
+ verified against the real file; partial records dropped not guessed) and
11886
+ the converter's DERIVED_FROM_MEASURED_BHT tier (~P anchors BHT/TMAX/TDL/
11887
+ TDD captured to stream meta).
11888
+
11889
+ Ship prep: pins at 0.397.0 (desc 467 chars, measured counts); SHIP GUARD
11890
+ marker TWOSTREAM_ARC→CONNECTIVITY_ARC (+ GAPS id connectivity_arc_rule7);
11891
+ README release/campaign/shipped headers; CHANGELOG + _BUILD_LOG +
11892
+ SHIP_MESSAGE + RULINGS trail (pymodbus GO recorded); 10 CONNECTIVITY_ARC
11893
+ trail rows. Gate 5,816 → 5,835, 0 failures. Package v1.13.0 (26 files incl.
11894
+ catalog/, measured). Awaiting Daniel: `.\ship.ps1` (clear .git/index.lock first).
@@ -2306,3 +2306,4 @@ PAPER_S202_Phase_H202_VariantBranches,0.0,EXACT_OR_CENSUS
2306
2306
  PAPER_S203_Phase_H203_PTF,0.0,EXACT_OR_CENSUS
2307
2307
  PAPER_S204_Phase_H204_GapClosure,0.0,EXACT_OR_CENSUS
2308
2308
  PAPER_S205_Phase_H205_ExpansionErosion,0.0,EXACT_OR_CENSUS
2309
+ PAPER_2257,0.0,EXACT_OR_CENSUS
@@ -0,0 +1 @@
1
+ v0.397.0
@@ -1723,3 +1723,4 @@ LEDGER_ARC,n/a,n/a,NOT_APPLICABLE,census+packaging single-geometry,v0.393.0
1723
1723
  DOWNHOLE_ARC,n/a,n/a,NOT_APPLICABLE,application module single-geometry,v0.394.0
1724
1724
  INSTRUMENT_ARC,n/a,n/a,NOT_APPLICABLE,application-module extensions single-geometry,v0.395.0
1725
1725
  TWOSTREAM_ARC,n/a,n/a,NOT_APPLICABLE,application-module architecture single-geometry,v0.396.0
1726
+ CONNECTIVITY_ARC,n/a,n/a,NOT_APPLICABLE,application connectivity + real-data catalogue single-geometry,v0.397.0
@@ -1724,3 +1724,4 @@ LEDGER_ARC,n/a,XGEO_NOT_REQUIRED,none,v0.393.0
1724
1724
  DOWNHOLE_ARC,n/a,XGEO_NOT_REQUIRED,none,v0.394.0
1725
1725
  INSTRUMENT_ARC,n/a,XGEO_NOT_REQUIRED,none,v0.395.0
1726
1726
  TWOSTREAM_ARC,n/a,XGEO_NOT_REQUIRED,none,v0.396.0
1727
+ CONNECTIVITY_ARC,n/a,XGEO_NOT_REQUIRED,none,v0.397.0
@@ -99,7 +99,7 @@ Every previously non-numeric key now carries a canonical PAPER number (2179-2212
99
99
  | 2233 | PAPER_1203b |
100
100
 
101
101
  - **Verification arc 2026-08-16 (v0.387.0):** paradox-corpus audit ZERO recalcs; grammar dragnet 110 family sites; origin term verified; AP text layer EXHAUSTED (458 docs). Runnable queue empty — remaining items Daniel-owned.
102
- - **Distinct wired papers: 2,252 (+55 canonical alias numbers 2179-2233; 2,307 DISPATCH keys). Absorption pass + PAPER_2234 campaign-completion landmark, 2026-08-16.** = `wired_count()` = `len(DISPATCH)` (live at band 2121-2130, 2026-08-16; earlier eras' 1,417 figure superseded).
102
+ - **Distinct wired papers: 2,253 (+55 canonical alias numbers 2179-2233; 2,308 DISPATCH keys). PAPER_2257 two-stream architecture landmark, 2026-08-24.** = `wired_count()` = `len(DISPATCH)` (live at band 2121-2130, 2026-08-16; earlier eras' 1,417 figure superseded).
103
103
  - **Index table file-row marks:** **934 ✓ CLEAN**, **245 ⚠ OPEN_RULING**, **1076 ⬜** not-touched (934 + 245 + 1076 = 2255 ✓). Wired file-rows (934 + 245 = 1,179) sit below `wired_count()` = 1,417 because variant files share a base dispatch.
104
104
  - **ORPHAN-PHYSICS (v0.367.1 audit):** no paper numbers are missing, but 71 non-numbered `.md` files in the predecessor hold **6,615 equation blocks** outside the corpus. Queued as Q-ORPHAN-PHYSICS.
105
105
  - **OPEN targets:** 0
@@ -2413,3 +2413,4 @@ Every previously non-numeric key now carries a canonical PAPER number (2179-2212
2413
2413
  | ✓ | PAPER_2254 | ANCHOR_CENSUS: 33 named / 981 uses / 17 external-value surface / live introspection drift-catch in UNIFIED_REGISTRY_ANCHORS.csv (new artifact); 4 relabeled UQFF_DERIVED; board-item scope measured 3/49; P2149 ledger complete (authored+wired 2026-08-21) |
2414
2414
  | ✓ | PAPER_2255 | OPEN_ITEMS_CENSUS: 20 ledger rows / 10 classes / 29 OPEN + 15 route-family measured live per call in UNIFIED_REGISTRY_OPEN_ITEMS.csv (new artifact); Daniel board in-ledger; deliberate-vs-open distinguished; CENSUS SERIES COMPLETE (authored+wired 2026-08-21) |
2415
2415
  | ✓ | PAPER_2256 | UQFF_DOWNHOLE_SIMULATOR: first industry-application module (uqff_downhole_simulator/ package; HPHT quartz string TD 20,300 ft x6 gauges); canonical lock K_MEX=25/12 + Phi_res=0.84, suppression 1.0324; knob ruling (trims renamed); template port grok_cce7a73b 22Aug2026 (authored+wired 2026-08-22) |
2416
+ | ✓ | PAPER_2257 | TWO_STREAM_ARCHITECTURE: closed stream finds offset undervalued live data (Daniel ruling 2026-08-23); tool library v1.7.0 + read-only ports v1.8.0 + reconciler v1.9.0; four-scenario validation incl. kick find 6,083 psi; refusal doctrine canonized; dispatch re-verifies architecture live (authored+wired 2026-08-24) |
@@ -309,3 +309,6 @@ THE INSTRUMENT SHIP: uqff_downhole_simulator v1.2.0-v1.6.0 (service-life diverge
309
309
 
310
310
  ## v0.396.0 — 2026-08-24
311
311
  THE TWO-STREAM SHIP: uqff_downhole_simulator v1.7.0-v1.9.0 (cited tool library; read-only ports with historian/LAS implemented and live taps declared; two-stream reconciler with four-scenario validation incl. the 6,083-psi kick find). Architecture complete. Gate 5,816/0. 23-file pass verified.
312
+
313
+ ## v0.397.0 — 2026-08-24
314
+ THE CONNECTIVITY SHIP: PAPER_2257 landmark+dispatch; downhole v1.10-v1.13 (file-follower; real Modbus client loopback-verified; connectivity ladder; profile catalogue with THREE REAL WELLS incl. wrapped-LAS parsing + measured-BHT tier). Gate 5,835/0. 23-file pass verified.
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "star-magic-program"
7
- version = "0.396.0"
8
- description = "Star-Magic UQFF calculator v0.396.0: THE TWO-STREAM SHIP. 2,252 dispatches (2,307 keys), gate 5,816/0. uqff_downhole_simulator v1.7.0-v1.9.0 completes Daniel's two-stream architecture: cited tool library (8 entries, no invented vendor data), read-only ports (historian CSV + LAS 2.0 implemented, live taps declared), and the two-stream reconciler - closed-stream predictions vs live data, offsets classified, undervalued streams flagged (kick-well find: 6,083 psi unexplained). Next: PAPER_2257."
7
+ version = "0.397.0"
8
+ description = "Star-Magic UQFF calculator v0.397.0: THE CONNECTIVITY SHIP. 2,253 dispatches (2,308 keys), gate 5,835/0. PAPER_2257 two-stream architecture landmark + uqff_downhole_simulator v1.10-v1.13: quasi-live file-follower, real Modbus client (optional pymodbus, loopback-verified), connectivity-tier ladder, and a REAL-WELL profile catalogue - Volve 15/9-19 SR, Scorpio E1 (SA), Kennetcook #2 (NS, wrapped LAS + measured BHT 42C@1935m), provenance-mandatory. Next: PAPER_2258."
9
9
  readme = "README.md"
10
10
  authors = [
11
11
  { name = "Daniel T. Murphy", email = "daniel.murphy00@enrgyone.com" }
@@ -52,6 +52,10 @@ Source = "https://github.com/Daniel8Murphy0007/Star-Magic-Program"
52
52
  Predecessor = "https://github.com/Daniel8Murphy0007/Star-Magic"
53
53
  Issues = "https://github.com/Daniel8Murphy0007/Star-Magic-Program/issues"
54
54
 
55
+ [project.optional-dependencies]
56
+ modbus = ["pymodbus>=3.15"]
57
+ gui = ["PyQt6"]
58
+
55
59
  [tool.setuptools]
56
60
  packages = ["uqff_downhole_simulator"]
57
61
  py-modules = ["uqff_session_closures", "uqff_fubii_variants", "uqff_ngc_catalog", "uqff_primitive_identities", "uqff_material_landmarks", "uqff_backbone_locks", "uqff_derived_functions", "uqff_derived_constants",
@@ -101,4 +105,11 @@ py-modules = ["uqff_session_closures", "uqff_fubii_variants", "uqff_ngc_catalog"
101
105
  "notebooks/00_quickstart.ipynb",
102
106
  "uqff_downhole_simulator/README.md",
103
107
  "uqff_downhole_simulator/sample_well_profile.csv",
108
+ "uqff_downhole_simulator/example_register_map.json",
109
+ "uqff_downhole_simulator/catalog/volve_15_9_19_sr_excerpt.las",
110
+ "uqff_downhole_simulator/catalog/volve_15_9_19_sr_excerpt.provenance.json",
111
+ "uqff_downhole_simulator/catalog/scorpio_e1_sa_excerpt.las",
112
+ "uqff_downhole_simulator/catalog/scorpio_e1_sa_excerpt.provenance.json",
113
+ "uqff_downhole_simulator/catalog/kennetcook_2_p129_excerpt.las",
114
+ "uqff_downhole_simulator/catalog/kennetcook_2_p129_excerpt.provenance.json",
104
115
  ]
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: star-magic-program
3
- Version: 0.396.0
4
- Summary: Star-Magic UQFF calculator v0.396.0: THE TWO-STREAM SHIP. 2,252 dispatches (2,307 keys), gate 5,816/0. uqff_downhole_simulator v1.7.0-v1.9.0 completes Daniel's two-stream architecture: cited tool library (8 entries, no invented vendor data), read-only ports (historian CSV + LAS 2.0 implemented, live taps declared), and the two-stream reconciler - closed-stream predictions vs live data, offsets classified, undervalued streams flagged (kick-well find: 6,083 psi unexplained). Next: PAPER_2257.
3
+ Version: 0.397.0
4
+ Summary: Star-Magic UQFF calculator v0.397.0: THE CONNECTIVITY SHIP. 2,253 dispatches (2,308 keys), gate 5,835/0. PAPER_2257 two-stream architecture landmark + uqff_downhole_simulator v1.10-v1.13: quasi-live file-follower, real Modbus client (optional pymodbus, loopback-verified), connectivity-tier ladder, and a REAL-WELL profile catalogue - Volve 15/9-19 SR, Scorpio E1 (SA), Kennetcook #2 (NS, wrapped LAS + measured BHT 42C@1935m), provenance-mandatory. Next: PAPER_2258.
5
5
  Author-email: "Daniel T. Murphy" <daniel.murphy00@enrgyone.com>
6
6
  License: AGPL-3.0-or-later OR LicenseRef-StarMagic-Commercial
7
7
  Project-URL: Homepage, https://github.com/Daniel8Murphy0007/Star-Magic-Program
@@ -30,21 +30,25 @@ Requires-Dist: sympy>=1.12
30
30
  Requires-Dist: mpmath>=1.3
31
31
  Requires-Dist: numpy>=1.24
32
32
  Requires-Dist: scipy>=1.10
33
+ Provides-Extra: modbus
34
+ Requires-Dist: pymodbus>=3.15; extra == "modbus"
35
+ Provides-Extra: gui
36
+ Requires-Dist: PyQt6; extra == "gui"
33
37
  Dynamic: license-file
34
38
 
35
39
  # Star-Magic-Program
36
40
 
37
- [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg?cacheBust=0.396.0)](https://pypi.org/project/star-magic-program/)
38
- [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg?cacheBust=0.396.0)](https://pypi.org/project/star-magic-program/)
41
+ [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg?cacheBust=0.397.0)](https://pypi.org/project/star-magic-program/)
42
+ [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg?cacheBust=0.397.0)](https://pypi.org/project/star-magic-program/)
39
43
  [![Documentation Status](https://readthedocs.org/projects/star-magic-program/badge/?version=latest)](https://star-magic-program.readthedocs.io/en/latest/?badge=latest)
40
44
  [![License: AGPL-3.0 + Commercial](https://img.shields.io/badge/License-AGPL--3.0%20%2B%20Commercial-blue.svg)](LICENSE)
41
- [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-5816%2F0-brightgreen)](uqff_fidelity_tests.py)
42
- [![Public surfaces](https://img.shields.io/badge/public_surfaces-2307-blue)](uqff_calculator.py)
43
- [![Whitepapers](https://img.shields.io/badge/whitepapers-2291-orange)](whitepapers/)
45
+ [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-5835%2F0-brightgreen)](uqff_fidelity_tests.py)
46
+ [![Public surfaces](https://img.shields.io/badge/public_surfaces-2308-blue)](uqff_calculator.py)
47
+ [![Whitepapers](https://img.shields.io/badge/whitepapers-2292-orange)](whitepapers/)
44
48
 
45
- **UQFF systematic rebuild — v0.396.0 complete-compile campaign live**
49
+ **UQFF systematic rebuild — v0.397.0 complete-compile campaign live**
46
50
 
47
- **This release (v0.396.0): THE TWO-STREAM SHIP — THE ARCHITECTURE COMPLETE.** **PAPER_2256 + `uqff_downhole_simulator` v1.6.0:** the program's first packaged industry-application module, built from Daniel's 22Aug2026 template thread (grok_cce7a73b) on same-day GO — a deep-well HPHT simulator (TD ≈ 20,300 ft) with a quartz P/T gauge string whose drift is **suppressed by the canonical lattice**: suppression = (0.58+0.32·(1−F_TRZ))·(0.52+0.38·K_MEX)·(0.68+0.27·Φ_res) = **1.0324 at the locked {0.1, 25/12, 0.84}** — drift BELOW the 0.215 %FS/yr industry baseline. **The knob ruling (Rule 2):** the template's adjustable "K_MEX"/"Φ_res" sliders were tuning gains wearing primitive names — canonicals now LOCKED in-physics (verified live by the dispatch on every call), sliders renamed `k_structural_trim`/`phi_coupling_trim`. **v1.1.0 extensions (Daniel-directed):** N-gauge strings (`make_sensor_string`); real well profiles from CSV (`load_well_profile_csv`; the shipped sample carries an HPHT overpressure kick the linear model cannot see — 18,405 vs 9,313 psi at the deepest gauge); and **twin-gauge drift-comparison mode** — every station carries a conventional reference gauge, and away from the clip band the measured conventional/UQFF ratio EQUALS the canonical suppression (1.0325 measured vs 1.0324 predicted across a 12-gauge string on the real profile) — the PAPER_2250 quartz bench test's complete simulation instrument. **v1.2.0 extension:** service-life drift ACCUMULATION (`ServiceLifeSimulator`) — the rates integrated over simulated service years, twin-leg divergence curves (2-3 psi/yr separation per station at FS 30,000 psi, 10-15 psi at a 5-yr horizon), recalibration resets, years-to-error-budget arithmetic; the accumulated-error ratio converges to the canonical suppression at every station. **v1.3.0 extension:** field-telemetry realism (`TelemetryRecorder`) — 1-reading/min timestamped acquisition with line dropouts, stuck gauges and spikes, historian quality flags, and a scored QC pipeline (frozen-value detection 1.0/1.0; Hampel despiker with common-mode veto, spike precision 0.83-1.0) exporting field-historian-style CSVs. **v1.4.0 extension:** depth-sweep case-study mode (`case_study`/`write_markdown` + CLI) — where the advantage is largest: 2.04 psi/yr flat below the HPHT knees compounding to 3.04 psi/yr at 20,000 ft (4.21 at 27,000 ft on a 30,000-ft well), rendered as a one-page customer case with the honest DERIVED_HYBRID note. **v1.5.0 extension:** real-datasheet gauge specs (`GaugeSpec`/`GAUGE_SPECS`) — web-verified GEO PSI GEOQ 177 (Quartzdyne) presets with mandatory citations (uncited specs rejected in code), plumbed through every layer; the suppression ratio is baseline-independent while the psi/yr story honestly scales with the cited spec bound. **v1.6.0 extensions:** wellbore deviation (MD/TVD surveys — a 60-deg tangent reads 6,525 vs the vertical model's 9,315 psi at the deepest gauge), multi-well batch runs (ratio invariant across geometries), and a headless CLI (`python -m uqff_downhole_simulator run|service-life|telemetry|case-study`). The 2026-08-23 extension list is complete. **v1.7.0 (two-stream build, piece 1): the tool library** — cited catalog of 8 toolstring entries (quartz twins, piezoresistive class with ChampionX-cited exponential drift form, vibrating wire/DTS/thermocouple as PARAMETERS_USER_SUPPLIED refusing invented numbers, and the G6 Modbus-RS485 surface interface declared as the ports-layer target) + ToolString composition + station rating checks (catches a 177 °C gauge in the 217 °C kick zone). **v1.8.0 (two-stream build, piece 2): the ports/plug-in layer** — READ-ONLY ingest to the normalized LiveStream form: historian-CSV and LAS 2.0 readers IMPLEMENTED (round-trip verified against the v1.3.0 telemetry export; wrapped LAS refused, not mis-parsed), live-protocol taps (modbus_g6/witsml/opcua) DECLARED and refusing until site details exist, `register_port()` for site plug-ins, CLI `ingest` subcommand. **v1.9.0 (piece 3 — the architecture COMPLETE): the two-stream reconciler** — per-station offset series classified IN_FAMILY / CALIBRATION_OFFSET / DRIFT_CONSISTENT / TRANSIENTS / UNEXPLAINED with disclosed thresholds; validated on four scenarios incl. THE FIND: the kick well reconciled against a linear-gradient assumption flags 610/4,448/6,083 psi unexplained offsets — the closed stream exposing the undervalued data stream. CLI `reconcile` subcommand. Sixteen package files (14 modules incl. the headless CLI + README + sample profile), installable package, engine headless by design, DERIVED_HYBRID with every industry anchor inline-commented, gate-verified per run. **Totals: 2,252 wired (2,307 DISPATCH keys) / gate 5,816 green / 4,179 defs. Next paper: PAPER_2257.**
51
+ **This release (v0.397.0): THE CONNECTIVITY SHIP — THE LIVE STREAM GETS ITS DOORS, AND REAL WELLS ENTER THE REPO.** **PAPER_2256 + `uqff_downhole_simulator` v1.6.0:** the program's first packaged industry-application module, built from Daniel's 22Aug2026 template thread (grok_cce7a73b) on same-day GO — a deep-well HPHT simulator (TD ≈ 20,300 ft) with a quartz P/T gauge string whose drift is **suppressed by the canonical lattice**: suppression = (0.58+0.32·(1−F_TRZ))·(0.52+0.38·K_MEX)·(0.68+0.27·Φ_res) = **1.0324 at the locked {0.1, 25/12, 0.84}** — drift BELOW the 0.215 %FS/yr industry baseline. **The knob ruling (Rule 2):** the template's adjustable "K_MEX"/"Φ_res" sliders were tuning gains wearing primitive names — canonicals now LOCKED in-physics (verified live by the dispatch on every call), sliders renamed `k_structural_trim`/`phi_coupling_trim`. **v1.1.0 extensions (Daniel-directed):** N-gauge strings (`make_sensor_string`); real well profiles from CSV (`load_well_profile_csv`; the shipped sample carries an HPHT overpressure kick the linear model cannot see — 18,405 vs 9,313 psi at the deepest gauge); and **twin-gauge drift-comparison mode** — every station carries a conventional reference gauge, and away from the clip band the measured conventional/UQFF ratio EQUALS the canonical suppression (1.0325 measured vs 1.0324 predicted across a 12-gauge string on the real profile) — the PAPER_2250 quartz bench test's complete simulation instrument. **v1.2.0 extension:** service-life drift ACCUMULATION (`ServiceLifeSimulator`) — the rates integrated over simulated service years, twin-leg divergence curves (2-3 psi/yr separation per station at FS 30,000 psi, 10-15 psi at a 5-yr horizon), recalibration resets, years-to-error-budget arithmetic; the accumulated-error ratio converges to the canonical suppression at every station. **v1.3.0 extension:** field-telemetry realism (`TelemetryRecorder`) — 1-reading/min timestamped acquisition with line dropouts, stuck gauges and spikes, historian quality flags, and a scored QC pipeline (frozen-value detection 1.0/1.0; Hampel despiker with common-mode veto, spike precision 0.83-1.0) exporting field-historian-style CSVs. **v1.4.0 extension:** depth-sweep case-study mode (`case_study`/`write_markdown` + CLI) — where the advantage is largest: 2.04 psi/yr flat below the HPHT knees compounding to 3.04 psi/yr at 20,000 ft (4.21 at 27,000 ft on a 30,000-ft well), rendered as a one-page customer case with the honest DERIVED_HYBRID note. **v1.5.0 extension:** real-datasheet gauge specs (`GaugeSpec`/`GAUGE_SPECS`) — web-verified GEO PSI GEOQ 177 (Quartzdyne) presets with mandatory citations (uncited specs rejected in code), plumbed through every layer; the suppression ratio is baseline-independent while the psi/yr story honestly scales with the cited spec bound. **v1.6.0 extensions:** wellbore deviation (MD/TVD surveys — a 60-deg tangent reads 6,525 vs the vertical model's 9,315 psi at the deepest gauge), multi-well batch runs (ratio invariant across geometries), and a headless CLI (`python -m uqff_downhole_simulator run|service-life|telemetry|case-study`). The 2026-08-23 extension list is complete. **v1.7.0 (two-stream build, piece 1): the tool library** — cited catalog of 8 toolstring entries (quartz twins, piezoresistive class with ChampionX-cited exponential drift form, vibrating wire/DTS/thermocouple as PARAMETERS_USER_SUPPLIED refusing invented numbers, and the G6 Modbus-RS485 surface interface declared as the ports-layer target) + ToolString composition + station rating checks (catches a 177 °C gauge in the 217 °C kick zone). **v1.8.0 (two-stream build, piece 2): the ports/plug-in layer** — READ-ONLY ingest to the normalized LiveStream form: historian-CSV and LAS 2.0 readers IMPLEMENTED (round-trip verified against the v1.3.0 telemetry export; wrapped LAS refused, not mis-parsed), live-protocol taps (modbus_g6/witsml/opcua) DECLARED and refusing until site details exist, `register_port()` for site plug-ins, CLI `ingest` subcommand. **v1.9.0 (piece 3 — the architecture COMPLETE): the two-stream reconciler** — per-station offset series classified IN_FAMILY / CALIBRATION_OFFSET / DRIFT_CONSISTENT / TRANSIENTS / UNEXPLAINED with disclosed thresholds; validated on four scenarios incl. THE FIND: the kick well reconciled against a linear-gradient assumption flags 610/4,448/6,083 psi unexplained offsets — the closed stream exposing the undervalued data stream. CLI `reconcile` subcommand. **PAPER_2257** canonizes the architecture with a live-verifying dispatch. **v1.10.0 (connectivity tier 3):** `HistorianFollower` — quasi-live monitoring of continuously-appended historian exports with per-poll reconciliation, zero network code; formal connectivity-status ladder published (simulate / offline-ingest / file-follow built; live protocol tier 4 now REAL CODE: v1.11.0 Modbus client behind optional `pip install pymodbus`, citation-mandatory register maps, loopback-verified against an in-process server; witsml/opcua remain declared-refusing). **v1.12.0: the profile catalogue** — REAL public well data in the repo: an Equinor Volve well 15/9-19 SR verbatim log excerpt (cited, provenance-mandatory sidecar) ingesting through the las2 port with an honest LAS→profile converter (DERIVED_GRADIENTS labeled when logs carry no T/P curves) and a 6-database public-source table (KGS, Volve, DOE GDR/FORGE, NLOG, state regulators, offshore nationals) with honest access notes. **v1.13.0: three real wells catalogued** — Volve 15/9-19 SR (North Sea) + Scorpio E1 (South Australia, −99999-NULL dialect) + Kennetcook #2 P-129 (Nova Scotia, WRAPPED mode with a REAL measured BHT 42 °C @ 1,935 m) — driving two port upgrades: wrapped-LAS parsing (superseding the refusal, verified against the real file) and a DERIVED_FROM_MEASURED_BHT converter tier. Every value verbatim, every entry provenance-complete, all gate-pinned. Sixteen package files (14 modules incl. the headless CLI + README + sample profile), installable package, engine headless by design, DERIVED_HYBRID with every industry anchor inline-commented, gate-verified per run. **Totals: 2,253 wired (2,308 DISPATCH keys) / gate 5,835 green / 4,180 defs. Next paper: PAPER_2257.**
48
52
 
49
53
  Author: Daniel T. Murphy · Star-Magic Research Program
50
54
  License: AGPL-3.0-or-later OR Commercial
@@ -102,7 +106,7 @@ Mizuno, Rossi).
102
106
  Full framework physics lives in the whitepaper corpus — the physics is the
103
107
  whitepapers; the calculator computes what the whitepapers derive.
104
108
 
105
- ## What is currently shipped (v0.396.0)
109
+ ## What is currently shipped (v0.397.0)
106
110
 
107
111
  ### Wiring campaign — LIVE (see `CLAUDE.md` charter)
108
112
 
@@ -110,7 +114,7 @@ Sequential wiring of all 2,255 whitepapers, starting at PAPER_001.
110
114
  Authorized 2026-07-28: autonomous band sessions, ship per session via
111
115
  `ship.ps1`, full stop at PAPER_500 for manual review.
112
116
 
113
- **Wired: 2,252 distinct dispatches (2307 DISPATCH keys incl. the 55 canonical alias numbers 2179-2233)** (one per paper, Rule B closed). **Complete-compile frontier: PAPER_001-1300** (+ b-variants) fully captured over a **1766-function primitive-sourced equation library** — every equation and section (core + Session-225 + Production Framework + Cosmogenesis Lagrangian + VDS/DVP/BSH + Kozima-LENR K.1-K.6) via _common_uqff_blocks, with paper-specific §B DVP prime ladder (gate-guarded), 40/40+ linked-paper mapping, and a campaign-aware XGEO chain.
117
+ **Wired: 2,253 distinct dispatches (2308 DISPATCH keys incl. the 55 canonical alias numbers 2179-2233)** (one per paper, Rule B closed). **Complete-compile frontier: PAPER_001-1300** (+ b-variants) fully captured over a **1766-function primitive-sourced equation library** — every equation and section (core + Session-225 + Production Framework + Cosmogenesis Lagrangian + VDS/DVP/BSH + Kozima-LENR K.1-K.6) via _common_uqff_blocks, with paper-specific §B DVP prime ladder (gate-guarded), 40/40+ linked-paper mapping, and a campaign-aware XGEO chain.
114
118
 
115
119
  **Derived-constants catalog (v0.344.0):** all **1,272 unique predecessor-registry derived constants** wired and callable via `uqff_derived_constants.py` — e.g. `derived_constant("alpha_inverse")` → 137.0 (PAPER_1167), `derived_constant("astro_BH_entropy_coeff")` → 0.24833 (PAPER_594). 661 numeric, routes + provenance preserved.
116
120
 
@@ -55,16 +55,26 @@ star_magic_program.egg-info/top_level.txt
55
55
  uqff_downhole_simulator/README.md
56
56
  uqff_downhole_simulator/__init__.py
57
57
  uqff_downhole_simulator/__main__.py
58
+ uqff_downhole_simulator/example_register_map.json
58
59
  uqff_downhole_simulator/matplotlib_demo.py
59
60
  uqff_downhole_simulator/qt6_downhole_app.py
60
61
  uqff_downhole_simulator/sample_well_profile.csv
61
62
  uqff_downhole_simulator/uqff_case_study.py
62
63
  uqff_downhole_simulator/uqff_deviation.py
63
64
  uqff_downhole_simulator/uqff_downhole_engine.py
65
+ uqff_downhole_simulator/uqff_follower.py
64
66
  uqff_downhole_simulator/uqff_gauge_specs.py
67
+ uqff_downhole_simulator/uqff_modbus.py
65
68
  uqff_downhole_simulator/uqff_ports.py
69
+ uqff_downhole_simulator/uqff_profile_catalog.py
66
70
  uqff_downhole_simulator/uqff_quartz_hpht_extension.py
67
71
  uqff_downhole_simulator/uqff_reconciler.py
68
72
  uqff_downhole_simulator/uqff_service_life.py
69
73
  uqff_downhole_simulator/uqff_telemetry.py
70
- uqff_downhole_simulator/uqff_tool_library.py
74
+ uqff_downhole_simulator/uqff_tool_library.py
75
+ uqff_downhole_simulator/catalog/kennetcook_2_p129_excerpt.las
76
+ uqff_downhole_simulator/catalog/kennetcook_2_p129_excerpt.provenance.json
77
+ uqff_downhole_simulator/catalog/scorpio_e1_sa_excerpt.las
78
+ uqff_downhole_simulator/catalog/scorpio_e1_sa_excerpt.provenance.json
79
+ uqff_downhole_simulator/catalog/volve_15_9_19_sr_excerpt.las
80
+ uqff_downhole_simulator/catalog/volve_15_9_19_sr_excerpt.provenance.json
@@ -2,3 +2,9 @@ sympy>=1.12
2
2
  mpmath>=1.3
3
3
  numpy>=1.24
4
4
  scipy>=1.10
5
+
6
+ [gui]
7
+ PyQt6
8
+
9
+ [modbus]
10
+ pymodbus>=3.15
@@ -73,7 +73,7 @@ from uqff_registry_primitives import (
73
73
  DELTA_M2_21_EV2, DELTA_M2_32_EV2,
74
74
  )
75
75
 
76
- VERSION = "0.396.0"
76
+ VERSION = "0.397.0"
77
77
 
78
78
  # NAMED OBSERVED SI ANCHORS (constant drain 2026-08-16, PAPER_2141 bulk pattern + PAPER_2149 observation-headlining)
79
79
  # Bit-identical to the literals they replace; UQFF-derived counterparts live in uqff_registry_primitives.
@@ -28905,6 +28905,78 @@ def _p2256(dataset=None):
28905
28905
  'the subpackage LIVE and verifies the canonical lock on every call.',
28906
28906
  'source': 'PAPER_2256', 'residual_pct': 0.0}
28907
28907
 
28908
+ @_register('PAPER_2257')
28909
+ def _p2257(dataset=None):
28910
+ arch = {'available': False}
28911
+ try:
28912
+ import numpy as _np
28913
+ import uqff_downhole_simulator as ds
28914
+ sup = ds.canonical_suppression()
28915
+ d = ds.drift_comparison(3000, 180, 16000)
28916
+ ports = {n: p.status for n, p in ds.PORT_REGISTRY.items()}
28917
+ tools_cited = all(bool(t.source) and len(t.source) > 40 for t in ds.TOOL_LIBRARY.values())
28918
+ w = ds.SimulatorConfig(event_probability=0.0)
28919
+ rc = ds.Reconciler(w)
28920
+ md = float(w.sensor_depths_ft[0])
28921
+ base, _tF = rc.predicted_baseline(md)
28922
+ t = _np.arange(20) * 60.0
28923
+ rng = _np.random.default_rng(0)
28924
+ clean = ds.LiveStream('clean', 'synthetic', 'time_s', t,
28925
+ {'P_raw_psi_S1': ds.StreamChannel('P_raw_psi_S1', 'psi',
28926
+ base + rng.normal(0.0, 2.0, 20))})
28927
+ planted = ds.LiveStream('planted', 'synthetic', 'time_s', t,
28928
+ {'P_raw_psi_S1': ds.StreamChannel('P_raw_psi_S1', 'psi',
28929
+ base + 5000.0 + rng.normal(0.0, 2.0, 20))})
28930
+ c1 = rc.reconcile(clean, {'P_raw_psi_S1': md})['stations'][0]['classification']
28931
+ rep2 = rc.reconcile(planted, {'P_raw_psi_S1': md})
28932
+ c2 = rep2['stations'][0]['classification']
28933
+ arch = {'available': True, 'version': ds.__version__,
28934
+ 'canonical_suppression': round(sup, 4),
28935
+ 'ratio_equals_suppression': bool(abs(d['measured_ratio'] - d['predicted_ratio_suppression']) < 0.001),
28936
+ 'tool_library_entries': len(ds.TOOL_LIBRARY),
28937
+ 'tool_citations_complete': bool(tools_cited),
28938
+ 'ports': ports,
28939
+ 'null_case_classification': c1,
28940
+ 'planted_5000psi_classification': c2,
28941
+ 'undervalued_streams_found': len(rep2['undervalued_streams']),
28942
+ 'thresholds_disclosed_in_report': bool('note' in rep2['thresholds_disclosed'])}
28943
+ except Exception as e:
28944
+ arch['error'] = str(e)[:120]
28945
+ two_stream_ok = (arch.get('available')
28946
+ and arch.get('ratio_equals_suppression')
28947
+ and arch.get('tool_citations_complete')
28948
+ and arch.get('null_case_classification') == 'IN_FAMILY'
28949
+ and arch.get('planted_5000psi_classification') == 'UNEXPLAINED_OFFSET'
28950
+ and arch.get('undervalued_streams_found', 0) >= 1)
28951
+ return {'value': {'architecture': arch,
28952
+ 'two_stream_verified': bool(two_stream_ok),
28953
+ 'daniel_ruling': 'the standalone theoretical (CLOSED STREAM) functions to find the '
28954
+ 'offset undervalued data streams that coordinate live stream with '
28955
+ 'closed stream (2026-08-23)',
28956
+ 'pieces': {'tool_library': 'v1.7.0 - cited catalog, refusal of invented vendor data',
28957
+ 'ports': 'v1.8.0 - READ-ONLY ingest, implemented file ports + declared-refusing live taps',
28958
+ 'reconciler': 'v1.9.0 - offset classification with disclosed thresholds'},
28959
+ 'refusal_doctrine': 'name what you know, cite it; refuse what you do not, visibly - '
28960
+ 'uncited specs rejected, user-supplied tools refuse models, declared '
28961
+ 'ports refuse to run, wrapped LAS refused, sub-window drift not classified'},
28962
+ 'formula': 'THE TWO-STREAM ARCHITECTURE (Daniel ruling 2026-08-23, built complete '
28963
+ 'v1.7.0-v1.9.0): CLOSED STREAM (locked-primitive physics, zero external '
28964
+ 'input) predicts what every tool in a described well SHOULD read; LIVE '
28965
+ 'STREAM (site telemetry via READ-ONLY ports) delivers what it DOES read; '
28966
+ 'the RECONCILER works offset(t) = measured - predicted per station and '
28967
+ 'classifies IN_FAMILY / CALIBRATION_OFFSET / DRIFT_CONSISTENT / '
28968
+ 'TRANSIENTS / UNEXPLAINED. Four-scenario validation: clean 6/6 in-family; '
28969
+ '+50 psi bias recovered 50.09; 2-yr drift inside the spec-aware envelope '
28970
+ '[79.71, 82.29] psi/yr; THE FIND - kick well vs linear-gradient '
28971
+ 'description flags 610/4,448/6,083 psi UNEXPLAINED offsets: the closed '
28972
+ 'stream exposes the offset undervalued data stream the assumed model '
28973
+ 'cannot see. This dispatch re-verifies the architecture live per call '
28974
+ '(suppression lock, ratio equality, citations, port statuses, micro '
28975
+ 'two-stream reconciliation).',
28976
+ 'source': 'PAPER_2257',
28977
+ 'residual_pct': 0.0}
28978
+
28979
+
28908
28980
  @_register('PAPER_001')
28909
28981
  def _paper_001(dataset):
28910
28982
  """GW170817 UQFF Damping Analysis - COMPLETE physics compile over equation library."""