Repository navigation
v9.0.13
What's new in v9.0.13
- a7c1979 feat(provisioning): BUG-301 Training Environment Contract + CodeQL remediation (#1096, #1097) (#240)
- cf4258e docs: preserve agent12 integration_log note from stash snapshot (#239)
- e32f6f4 NSE-Swarm testrecon wave2: agent-loop reduction — T0 FAST lane, manifest-drift fix, delete-protection ledger (#228)
- 93cdf11 feat(ci): BUG-300 AI final-summary lane — reachability-gated triage + rules fallback at the end of every workflow (#238)
- b1158bd NSE-Swarm role4 closeout: BUG-299 landed PR #236 squash 749646d, post-merge 15/15 green; 298->299 renumber + #234 same-file conflict resolution note; role5 handoff (#237)
- 749646d NSE-Swarm role4: BUG-299 P0-3 friction-cap saturation — research paid 25% of calibrated cost; robustness GATE8 no-op PASS fixed fail-closed (#236)
- b1a9e0f test(release): BUG-298 follow-up — force-add tests/release/test_release_start_smoke_contract.py swallowed by the root-level 'release/' ignore pattern (#235)
- 8288a56 Site/cinematic landing (#233)
- 933a957 fix(release): BUG-298 packaged fresh-install START + first-run model acquisition (PATH A official / PATH B train-local / labeled DEV STARTER fallback, blocking start smoke) (#234)
- 2ae009c feat(site): cinematic Nexus landing — WebGL core, pipeline, pulse (self-updating) (#225)
- d55579d chore(deps): regenerate requirements.lock (drift: filelock 3.32.6 -> 3.32.7 upstream release; regenerated with CI-pinned uv 0.12.10, --python-version 3.11 universal + hashes; requirements.txt unchanged - filelock not a thin-artifact pin) (#227)
- 9a59f52 docs(audit): wave closeout addendum — final merge ledger, main CI zero failures, operator-action carryovers (#224)
- 78c77e0 feat(zero-state): BUG-296 — nexus repair --model starter bootstrap (Z-B1) + db migrate lock mkdir (Z-B5) + cp1252 boot panels (W12-1) (#221)
- 8996aff NSE-Swarm role3: BUG-297 perf-wave R5 adjudicated + landed (PR #222 d076496) — run report, log line; webhook-drop playbook (close+reopen recovers zero-run PRs) (#223)
- d076496 fix(experience): BUG-297 hot-path registry reads reuse one connection per thread tier (#222)
- 1d64785 NSE-Swarm hygiene-rules lane: BUG-295 hygiene SAFE_CLEAN dead rules healed + loud-skip (DBF-004) (#218)
- 3df969b test(runtime): BUG-294 behavioral regression net for bounded runtime state — perf-bounds lane convergence: all three mission fixes (R9 stdout print, unbounded _processed_orders, unbounded _report_cache) had already landed as BUG-287/290/291 on main while this lane scoped; remaining gap was behavioral coverage — eviction driven through the REAL dispatch seam (cap, oldest-out/newest-in, retained dedupe, evicted re-accept trade-off), broken-stdout log_signal non-crash pin (print absence inspect-scoped to the UNKNOWN block), and report-cache LRU recency under real period_series browsing with warm-identical recompute; 6 pins, critical_suite registered, ledger convergence + renumbering note (288 taken, 292/293 sibling lanes); gates: 6/6 new + 53/53 neighbors, ruff/format/mypy clean (#214)
- ad050c8 chore(deps): regenerate requirements.lock (drift: urllib3 2.7.0 -> 2.8.0 upstream release; regenerated with CI-pinned uv 0.12.10, --python-version 3.11 universal + hashes; requirements.txt unchanged - urllib3 not a thin-artifact pin) (#220)
- 7678a9e fix(boundaries): BUG-293 - paper-state reload and gateway order payloads fail closed (lane-11 L11-4 + L11-6) (#217)
- 88bb454 docs(audit): NSE master wave final report + DB inventory + ordered cleanup report (#216)
- fa34fcc NSE-Swarm role2: BUG-292 perf-wave R6 — C3 spread-percentile SQLite I/O moved off the event loop (#213)
- bae2dc1 NSE-Swarm role1: BUG-290/291 perf-wave R7+R8 — three unbounded in-process guard maps (_processed_orders zero prune sites, _ai_flip_warn_times dead cleanup claim, AccountingCore._report_cache no eviction) unified onto new stdlib-only BoundedLRUMap seam (MutableMapping, non-touching contains for the per-tick guard lookup, caps 50k/10k/512, evictions metric on debug snapshot); same-session-only safety argued against the durable executions UNIQUE; gated battery 14 + class guard, 180 neighbors RC=0 (#212)
- 2e53fd0 NSE-Swarm role12: closeout — BUG-276 LIVE-ACCEPTED via 09-15 nightly E2E (zero ON CONFLICT dead-letters, flood gone; run red = known CURLF shape); PR209/210 landed chain 62a097f+5a37c19b; NEW operator item TELEGRAM-SEND-FAILED (every CI notify returns SEND_FAILED at transport — secrets re-provision, grammar fix orthogonal); report+log amended (#211)
- 5a37c19 NSE-Swarm role12: BUG-289 class-guard source pin — regex over the shipped script asserts --os may never return to the pre-subparsers global section and both workflow call shapes stay declared (the dispatch-spy pins prove behavior; this pin proves the grammar contract itself) (#210)
- 62a097f NSE-Swarm role12: BUG-288 audit-worker queue-adoption race + BUG-289 telegram_notify CLI call shapes + health-wiring decision (#209)
- b1fe013 NSE-Swarm role11: run report + swarm log for 2026-09-15T0219Z (PR adjudication #204/#205, BUG-285 re-land #206, BUG-286 class guard + BUG-287 R1/R9 #207) (#208)
- b292cf4 NSE-Swarm role11: BUG-287 — perf-wave R1 2s hot-path blocking-put floor removed (min(flush*2, 0.1s)) + R9 stdout print deleted from log_signal; BUG-286 sentinel CLASS guard (tracked zero-byte identifier root files fail CI, RED-BEFORE at 701bc50); obs_trace gate registration gap closed; rebased onto ebca9f6 (post-#206) (#207)
- ebca9f6 fix(domain): BUG-285 — price boundaries fail closed: TickData/BarData reject non-finite; broker-history reader drops malformed rows loudly (was report-only); registers test_domain_models.py into critical_suite (#206)
- 65d3cb5 fix(lifecycle): BUG-286 — feed-stall weekend predicate delegates to market_calendar; remove cmd-hook sentinels that re-entered main via #199 (#205)
- 7493261 NSE-Swarm role10: BUG-278 durable financial-overflow was write-only (perf-wave R2) — bounded idempotent worker-thread drain + file cap + poison dead-letter + recovery observability; 18 gated tests (RED-BEFORE at ddf5c94) (#203)
- d8276dd NSE-Swarm testrecon: radical test system reconstruction — Tier 0-4 gates, 5.2x faster PR gate, TDD-validated P0 batteries (#202)
- b0ce723 Nse/master active scalper wave (#199)
- ddf5c94 NSE-Swarm role9: BUG-277 doctor WARNING-actions filter matched rendered label (operator guidance dead) (#201)
- 96762c0 UI/wave2 modern react (#198)
- be1842d chore(deps): regenerate requirements.lock (drift: greenlet 3.5.6) (#200)
- 19a1215 NSE-Swarm docs: role7 closeout line for PR #196 (BUG-276) (#197)
- 1b66e01 NSE-Swarm role7: BUG-276 baseline-skeleton UNIQUE shadow (ON CONFLICT producers dead-letter forever on gate-first DBs) (#196)
- 7940191 NSE-Swarm docs: role6 closeout line for PR #194 (BUG-274/275) (#195)
- 53ef019 NSE-Swarm role6: BUG-274 bound-seam wrapper-state leak class (13 sites) + BUG-275 hygiene cadence clock domain (#194)
- fd95a7b NSE-Swarm role5 closeout: BUG-272/273 + LEARNFIX1 landed via PR #192 (9431edd), all post-merge gates green (#193)
- 9431edd NSE-Swarm role5: BUG-272 champion-drift sentinel (BUG-257 remainder) + LEARNFIX1 smoke-scoping test-rot fix (#192)
- 3ad2b85 NSE-Swarm docs: BUG-271 closeout (landed via PR #190) (#191)
- 5a9e36e NSE-Swarm role4: BUG-271 governed in-place serving-artifact persist must supersede the CHAMPION fingerprint - async retrain/collapse recovery/hot-swap re-registered provenance under the NEW sha16 while the lifecycle CHAMPION stamp stayed on the OLD row (ON CONFLICT insert lands with column default CANDIDATE) -> P0-2 boot trust anchor compared serving bytes vs the orphaned governed fingerprint and REFUSED the next cold boot: trading dies permanently after ONE legitimate retrain, boot-time champion_sync never gets to heal (refusal fires before it); supersession seam wired at the _register_active_model choke point (replaced=True only, promotable-successor-only, append-only ARCHIVE, attacker rewrite still fails closed; trust anchor byte-unchanged); operator sqlite heal documented+probe-verified; 11 gated tests (RED 10/11 pre-fix, live reproduction) (#190)
- dcc5782 fix(ci): seed NSE_PG_PASSWORD in nightly-e2e .env so compose env parsing does not abort (core service is not PG-dependent) (#188)
- adaf26e chore(governance): CODEOWNERS registry for sensitive integration surfaces (workflows/CI, release+updater trust root, risk, execution/live, model lifecycle, persistence, web auth, agents contract) — owner-map for conflict arbitration + ruleset input; single-account fleet noted (#189)
- 47a3fc1 docs(ui): wave-1 followup — lane3 feature READMEs + taskboard closeout (#187)
- f5fe573 feat(ui): React parity wave 1 — legacy UI to Clean-Architecture feature modules (17 tabs, auth core, SSE, validation) (#186)
- 9d53147 fix(alt-ui): close 9 CodeQL py/http-response-splitting alerts (BUG-270)
Architecture support
- Windows x64: SUPPORTED (PyTorch/Polars/MetaTrader5 wheels exist)
- Windows ARM64: UNSUPPORTED — no wheels for the dependency stack
Tests ran in this workflow (gates job). No claims beyond that.