feat: gate heavy solver JSON, field traceability API, GUI rod/export depth
- C: emit profiles/diagnostics/fourier only when enable flags are set; null otherwise - API: fieldTraceability on case parse/default and solve; fix GET /solve/default options - Tests: golden fingerprint, quality gates, C diagnostics invariants; cardQa mean empty guard - Makefile: test-solver-sanitize ASan/UBSan target; README and COMPUTE_PLAN updates - GUI: taper weight/MTS/guides/sinker round-trip, rod catalog, solver output toggles, results (profiles/diagnostics/Fourier/traceability), engineering checks and tabs - Restore canonical WellName in base-case for regression; trace TaperGuidesCountArray Made-with: Cursor
This commit is contained in:
@@ -57,6 +57,10 @@ User goals: SROD-like transparency, measured card → downhole + pump movement,
|
||||
| Fourier analytical baseline | §3 | **Deferred** |
|
||||
| Full tube–tube contact (Eisner) | §6 | **Deferred** |
|
||||
|
||||
### Tubing gradient (GUI helper)
|
||||
|
||||
The **Fluid** tab can fill `TubingGradient` from a **heuristic** bulk-liquid hydrostatic estimate (water cut, oil API, water SG), aligned with the simplified mixture density used in `solver-api/src/xmlParser.js#computeFluidDensityKgM3`. `TubingGradient` is still parsed to `tubingGradientPaM` in Node but is **not** forwarded on the C JSON stdin payload today (`docs/engineering/field-traceability.md`). Wiring it into the damped-wave / pressure BC model would require `MATH_SPEC.md` + C changes + golden refresh.
|
||||
|
||||
---
|
||||
|
||||
## 4. API (quick reference)
|
||||
@@ -189,14 +193,14 @@ This section is the execution plan for the next pass, optimized for "feature-ric
|
||||
### 8.4 Priority 4 — Contract hardening
|
||||
|
||||
- Keep `schemaVersion: 2` additive contract stable by default.
|
||||
- Enforce option-gated heavy payloads (`profiles`, `diagnostics`, `fourier`).
|
||||
- Add traceability metadata endpoint/payload support for GUI and audits.
|
||||
- Enforce option-gated heavy payloads (`profiles`, `diagnostics`, `fourier`) — **implemented in C stdout** (`enableProfiles`, `enableDiagnosticsDetail`, `enableFourierBaseline`); default API responses omit heavy blocks.
|
||||
- Traceability metadata — **`fieldTraceability` on `GET /case/default`, `POST /case/parse`, `POST /solve`, `GET /solve/default`** via [`solver-api/src/fieldTraceability.js`](../solver-api/src/fieldTraceability.js).
|
||||
|
||||
**Acceptance gate:** backward-compat tests pass on default endpoints.
|
||||
|
||||
### 8.5 Priority 5 — CI/release readiness
|
||||
|
||||
- Add sanitizer runs (ASan/UBSan) for C paths.
|
||||
- Add sanitizer runs (ASan/UBSan) for C paths — **`make test-solver-sanitize`** in root [`Makefile`](../Makefile).
|
||||
- Add runtime/performance budgets on representative cases.
|
||||
- Enforce quality artifact generation in CI (comparison summaries + drift reports).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user