mirror of
https://github.com/esengine/DeepSeek-Reasonix.git
synced 2026-11-11 10:01:27 -10:00
* fix: preserve provider failure diagnostics across cleanup and restart Problem: Failed requests could reopen without their failure identity or the transport evidence needed to investigate them. Root cause: Cleanup replaced terminal recovery metadata, HTTP/2 protocol errors fell through classification, and request observations were process-local. Fix: Preserve failure metadata at the shared cleanup boundary, recognize HTTP/2 transport codes without enabling retries, and persist bounded redacted request evidence atomically with turn completion. Localize failure summaries and document additive persistence compatibility. Verification: Full root Go suite, owning-package and focused race tests, desktop history/export regressions, frontend tests and typecheck, Chromium interaction checks, Windows provider cross-compilation, and repolint passed. * fix: align diagnostic contracts and isolate lifecycle test fixtures Problem: CI rejected stale desktop contracts and an error type assertion; Windows lifecycle tests also timed out around filesystem finalization. Root cause: The additive diagnostic field was not regenerated into the host contract. Transport classification used a direct error assertion. Functional checkpoint and cancellation tests unnecessarily coupled live state assertions to multiple durable writes under short completion deadlines. Fix: Regenerate the contract, reject wrapped API errors using errors.As, and use existing in-memory checkpoint/controller fixtures for live semantics. Retain all assertions and dedicated durable maintenance, checkpoint reload, and cold-export coverage without changing production timeouts or CI gates. Verification: Pinned golangci-lint 2.12.2, repolint, focused provider/control tests, three race-test repetitions, checkpoint persistence reload, frontend typecheck, and diff checks passed locally. * fix: structure transport diagnostics and bound failed-turn evidence Problem: Transport classification depended on error wording, UI projections dropped structured diagnostics, successful requests persisted peer addresses, and bounded request history could silently appear complete after eviction. Root cause: Diagnostic identity was converted back to prose across transport and presentation boundaries, while lifetime-wide request eviction lacked bounded per-turn accounting and unsuccessful-turn persistence gating. Fix: Classify exported HTTP/2 types and exact stdlib type/code identities; carry diagnostic fields through all notice/history paths; persist only failed, interrupted, or recovery-required turn evidence; and record per-turn dropped counts and truncation, marking unavailable accounting incomplete. Verification: Typed and real TLS connection/stream/GOAWAY tests, provider/control race checks, cold-export and success-persistence regressions, per-turn loss tests, frontend projection tests, Chromium three-locale interactions, production frontend build, and bundle budgets passed. Preserve model bytes and retry policy. * fix: keep optional diagnostics from blocking terminal commits Problem: Encoding optional provider evidence could prevent required turn-end events from committing. Persisted free-text transport errors duplicated the structured evidence, and generated detail text duplicated HTTP/2 codes. Root cause: Optional diagnostic errors escaped the shared terminal-event builder, while transport prose was retained at multiple presentation boundaries. Fix: Warn and omit failed diagnostic records while preserving required terminal events. Remove transportError and its byte truncation. Leave transport-code rendering to the structured frontend presenter. Update export documentation. Verification: Real invalid-timestamp regression covers failed/interrupted/ recovery-required closures; synchronous and Desktop-send failures retain durable turn/end and cold-export identity. Structured-evidence, no-prose, presentation, and model-context tests pass, as do frontend typecheck and affected suites.