Use scaled long-double quadratic arithmetic without explicit FMA. Validate entry candidates against backend geometry and localize uncertain entries along the original exterior trajectory.
Preserve conservative miss semantics and propagate concrete entry failures. Add production-sample and numerical regression coverage.
Replace the position capture cutoff with a camera-relative dark threshold
shared by every backend, and carry explicit outcome/reason provenance
through the ray, RayPool, adaptive mesh, lens-map and replay paths.
- eval/eval_slab return SpacetimePointStatus; remove SPACETIME_RAY_CAPTURED
and the Schwarzschild capture radius; decouple observer construction from
ray position.
- RayEndpoint stores RayOutcome/RayReason plus the last trusted state;
budget exhaustion is retryable UNRESOLVED, data/integration failures are
INCOMPLETE.
- Normal dark terminal is L - L0 >= --dark-threshold (default 8), with L0
taken at the camera event and kept distinct from the worldtube entry
energy; photon energy and frequency ratio are never reset.
- Implement E/D/U triangle decisions with merged budget retries, persistent
probe witnesses promoted in place by vertex identity, conformity settling,
and approximate-black boundary provenance with achieved-scale statistics.
- Add RayPool continuation state and per-ray step budgets.
- Bump lens-map to v2 with explicit end/outcome/reason, approx_black,
threshold/retry/geometry provenance and per-frame retry counts; reject v1.
- Gate production output on incomplete/error results, overridable with
--allow-incomplete.
- Update AGENTS.md, the design document and usage docs; add the termination
oracle and regression coverage.
make -B -j4 BUILD_TYPE=Debug test passes with bit-identical reference HDRs.