4.3 KiB
4.3 KiB
Verification — issue #104
Verified locally on 2026-10-26. Implementation remains uncommitted and unpushed. No deployment, Hub restart, signing, trading, new venue request or price source.
Delivered behavior
- The existing Jupiter overview GET preserves optional
valueUsdas an exact decimal conversion from integer micro-USD. Zero, signed and large values survive; missing/null remains unavailable and malformed fields fail the complete observation. The reported number is used unchanged. - Immutable Metrics carry Jupiter/Phoenix estimate sources through account-aware venue, wallet and root totals. Sources are defensively copied. Shared Cross balances are counted once and position-only Cross Value remains inapplicable. Incomplete totals remain unavailable; their tooltips still explain the contributing estimate sources.
- Available estimated Value displays one
≈before the existing USD formatting and two-decimal rounding. Missing values show—without a numeric marker. Source-specific Value tooltips explain Jupiter's reported estimate and valuation uncertainty, Phoenix's estimated closing Value, and the difference from actual closing proceeds. - Whole-venue failure retention keeps original positions, source qualifications, observation time and last-success time. Successful recovery replaces observations, including replacing old Value with missing Value or clearing a successful empty scope. No polling/request/configuration behavior changed.
- Current repository documentation and
r35157_docs/projects/evelyn/README.mddescribe the new behavior and retain the real valuation limitations. The three affected main OpenSpec specifications are synced. Historical archived #100 documentation remains historical.
Checks
JAVA_HOME=/usr/local/software/java/jfx-25 ./gradlew build: successful; 42 existing tests, zero failures/errors/skips./tmp/Issue104Check.java: 63 focused assertions passed against the actual Jupiter HTTP reader, immutable model and background service using local HTTP fixtures. Covers exact123234567 → 123.234567, zero/negative/above-binary-integer-precision amounts, missing/null, eleven malformed representations, unchanged historical fee example, stable independent metrics, Jupiter and mixed totals, Cross and isolated Phoenix, defensive source copies, failure retention and replacement/empty recovery./tmp/Issue104Preview.java: 60 JavaFX assertions passed against actual table cells and tooltips. This is an assertion count, not 60 distinct user scenarios. Covers≈$123.23,≈$0.00,≈-$1.23, half-up rounding and tiny negative rounding to unsigned zero; complete and unavailable ancestor totals; Jupiter/Phoenix source explanations; Cross accounting; collapsed venue/Cross/wallet/root groups; unchanged rows/selection; retained/read-failed/recovered observations; empty and unknown hidden venues; independent Exposure/Collateral/Leverage/uPnL/Risk/TWAP and direction styles; horizontal scrolling.- Visually inspected
/tmp/issue104-check/value-expanded.png,value-collapsed.png,value-incomplete.png,value-total-tooltip.pngandvalue-small-window.png. Value was horizontally scrolled into the viewport before the final captures; the mixed tooltip is readable and bounded. - Existing temporary
/tmp/Issue102Check.javaand/tmp/Issue103Check.javapassed their 68 risk and 32 TWAP assertions respectively. No permanent test sources or dependencies were added. - Strict validation passes for
104-jupiter-estimated-valueand main specificationsjupiter-perps-overview,evelyn-perps-serviceandevelyn-perps-overview. Existing long paragraphs in the overview specification emit informational length hints only. - Working-tree and change-artifact whitespace checks pass, and all 22 local documentation links resolve, including the new Jupiter section anchor. The 22 pre-existing staged/deleted OpenSpec artifacts for #97, #99 and #103 remain untouched; no issue-104 file was staged.
Limits
Verification uses deterministic local fixtures, not live closing quotes or deployment to the running Hub. It establishes the reported-value pipeline, qualification and retention behavior, not correctness of Jupiter's valuation or equality with actual closing proceeds. The 24 October fee example in the Jupiter documentation is a preserved historical observation.