From 38172ff744bf221c1d65f0e569b3a044bdd46720 Mon Sep 17 00:00:00 2001 From: Scout Date: Thu, 24 Sep 2026 12:06:34 -0400 Subject: [PATCH 1/2] Reconcile records with merged evidence; add new-host EdgarTools SEC observation Records only; no gate status changes (trading_gates.py lists no flip candidate). - runtime-target.json: retained-equity-replay now reads spy_lean_parity_passed_one_zero_case and points at spy-parity/verdict-v2.json (gate spy-lean-parity established 2026-09-23), with the v1 comparison summary kept as earlier_evidence_ref. adaptive_practice gains native_paper_capacity from the #184 order-throughput evidence: 180 actions/min at the observed 200/min limit, self-reported, with order counts independently listed. The separate-paper-adapters scope now points at broker-state-failures for native faults. - engines-strategies card (json/md): stops claiming that runtime-target still records the BLOCKED status and keeps that status as history. - gates snapshot-promotion-gate note: cites trial 20260923g's retained ingest-receipt.json and gate-result.json from ingest_snapshot.py (480 rows, hashes equal, gate pass) as one real ingest gating one paper trial. Status, evidence_class and receipt_path are unchanged. data/README.md is corrected to match. - Grand-dashboard checkpoint: native-fault gate established (#169) and native paper capacity (#184). The secret-storage practice (#182) is not a lane and has no dashboard entity, so nothing was added for it. - New catalyst-provenance/new-host-native-network-20260924.json receipt (registered): EdgarTools 5.58.0 native request on the WSL2 Threadripper workstation (one GET 200, 371 rows, the same five selected rows as 2026-09-19). The unsalted contact hash is withheld. This adds a host and does not replace the 2026-09-19 receipt. Co-Authored-By: Claude Opus 5.5 (1M context) --- .../catalyst-provenance/access-resolution.md | 13 ++ .../new-host-native-network-20260924.json | 148 ++++++++++++++++++ blueprints/us-equities/data/README.md | 16 +- catalogs/us-equities/engines-strategies.json | 4 +- catalogs/us-equities/engines-strategies.md | 25 +-- catalogs/us-equities/gates-20260922.json | 2 +- catalogs/us-equities/runtime-target.json | 11 +- manifests/evidence.json | 52 ++++-- observability/grand-dashboard/state.json | 8 +- 9 files changed, 238 insertions(+), 41 deletions(-) create mode 100644 blueprints/us-equities/catalyst-provenance/new-host-native-network-20260924.json diff --git a/blueprints/us-equities/catalyst-provenance/access-resolution.md b/blueprints/us-equities/catalyst-provenance/access-resolution.md index 9dd309da1..cdc405486 100644 --- a/blueprints/us-equities/catalyst-provenance/access-resolution.md +++ b/blueprints/us-equities/catalyst-provenance/access-resolution.md @@ -98,3 +98,16 @@ replacement for filing bodies or complete historical availability. References: [SEC access and contact guidance](https://www.sec.gov/about/webmaster-frequently-asked-questions), [public APIs and bulk data](https://www.sec.gov/search-filings/edgar-application-programming-interfaces), [pinned EdgarTools HTTP implementation](https://github.com/dgunning/edgartools/blob/abe44344c56cf4bfb5443e0debca7e39342f6e7a/edgar/httpclient.py). + +## New-host observation, 2026-09-24 + +A second WSL2 host, the Threadripper workstation, ran the same native request +on 2026-09-24. EdgarTools 5.58.0 ran in an isolated runtime whose packages +equal `requirements.lock`. One SEC archive GET was answered 200, and the +request selected 371 8-K/8-K/A index rows. The five selected CIK/accession rows +equal this receipt's five headers. The +[new-host receipt](new-host-native-network-20260924.json) is an added +observation. It does not replace the 2026-09-19 receipt above. It covers only +the native upstream request: the provenance adapter, header bytes and temporal +packets were not run on that host. The committed copy of its output leaves out +the unsalted hash of the private contact. diff --git a/blueprints/us-equities/catalyst-provenance/new-host-native-network-20260924.json b/blueprints/us-equities/catalyst-provenance/new-host-native-network-20260924.json new file mode 100644 index 000000000..c8eb23bdc --- /dev/null +++ b/blueprints/us-equities/catalyst-provenance/new-host-native-network-20260924.json @@ -0,0 +1,148 @@ +{ + "schema_version": 1, + "id": "native-sec-new-host-20260924", + "kind": "native_cli_e2e", + "component_ids": [ + "edgartools" + ], + "claim": "New-host observation on the WSL2 Threadripper workstation: native EdgarTools 5.58.0, in an isolated runtime whose installed packages equal requirements.lock, completed the bounded get_filings request for 2020-03-02 with one SEC archive GET answered 200, 371 8-K/8-K/A index rows and the same five selected CIK/accession rows as the 2026-09-19 receipt. It adds a host; it does not replace the 2026-09-19 receipt.", + "limitations": [ + "One native upstream metadata request (the quarterly form index) on one host at one time. The provenance adapter (catalyst.py acquire and packet) was not run on this host, so no daily index, header bytes or temporal packets are observed here.", + "Unique-accession counts, forms breakdown and the complete compressed source's bytes and gzip validation were measured in 2026-09-19 and are not re-measured by this output, which records only the cohort count and five selected rows.", + "The exact command line was not retained. The output's keys and fields match native_edgar.py's native_network receipt, but that the file came from this repository's native_edgar.py is inferred from its schema, not recorded.", + "The runtime package check (installed packages equal requirements.lock) was made when this receipt was written, after the request; the request-time environment is inferred from it.", + "The contact identity is private. Its unsalted SHA-256 in the private output is withheld from the committed copy, because a guessed contact could be confirmed against it; a matching contact between the two hosts is therefore not shown.", + "Successful access on this host does not establish historical availability, as-known data or a strategy result; 2020 filing dates do not imply this runtime observed the filings then.", + "Not a host_receipts.py receipt: that recorder executes its own commands, so it cannot import an earlier output. No platform_status, landscape verdict or trading gate changes because of this file." + ], + "recorded_at_utc": "2026-09-24T15:55:00Z", + "relation_to_earlier": { + "earlier_receipt": "blueprints/us-equities/catalyst-provenance/access-resolution.json", + "earlier_receipt_id": "native-sec-access-resolution-20260919", + "replaces_earlier": false, + "same_cohort_count": true, + "same_five_selected_cik_accessions": true, + "selected": [ + "12208-0001193125-20-059087", + "13239-0000013239-20-000002", + "16918-0000016918-20-000035", + "18349-0000018349-20-000014", + "2186-0001654954-20-002156" + ] + }, + "host": { + "host_class": "WSL2 Threadripper workstation (Linux x86_64 under Windows)", + "platform_id": "linux-wsl2-x86_64", + "cpu_model_at_recording": "AMD Ryzen Threadripper PRO 5975WX 32-Cores (lscpu)", + "new_host_for_this_component": true, + "note": "Named a new host by the recording coordinator. The 2026-09-19 receipt does not record its host hardware, so this file does not itself verify that the two hosts differ. No second_physical_machine claim is made." + }, + "native_upstream": { + "package": "edgartools", + "version": "5.58.0", + "source_pin": "abe44344c56cf4bfb5443e0debca7e39342f6e7a", + "runtime": "isolated CPython 3.13.15 environment under the private catalyst runtime; uv pip freeze equals blueprints/us-equities/catalyst-provenance/requirements.lock (42 packages) at recording time", + "requirements_lock_sha256": "5aeadfb5a8f2ca7b26548ca3acaadcf1fe626230aff671011b6a341beeeb61df", + "native_edgar_py_sha256_at_recording": "72af6528dad542842f63fc3c765c3a3c21867d36942126f69f3f03c298983df7", + "documented_recipe_with_this_output_name": ". \"$SEC_CONTACT_ENV\"; export EDGAR_IDENTITY=\"$SEC_USER_AGENT\"; EDGAR_LOCAL_DATA_DIR=\"$CATALYST_RUNTIME/native-cache\" timeout --signal=TERM --kill-after=5s 60s \"$CATALYST_RUNTIME/sdk/bin/python\" blueprints/us-equities/catalyst-provenance/native_edgar.py --out \"$CATALYST_RUNTIME/native-network-20260924.json\"", + "api": "get_filings(2020, 1, form='8-K', amendments=True, filing_date='2020-03-02')", + "status": "complete", + "mode": "native_network", + "http_observations": [ + { + "method": "GET", + "status": 200, + "url": "https://www.sec.gov/Archives/edgar/full-index/2020/QTR1/form.gz" + } + ], + "automatic_retries": 0, + "cohort_rows": 371, + "selected_context_rows": 5, + "context_truncated": false, + "started_at_utc": "2026-09-24T13:15:14.870379Z", + "finished_at_utc": "2026-09-24T13:15:16.514251Z" + }, + "output": { + "private_original": "/catalyst-runtime/native-network-20260924.json", + "private_original_mode": "0600", + "private_original_sha256": "ed92e3406e1fa5d2f230469d9be8b2ea85b7fae060fd79672f19de6bac0bd07e", + "private_original_bytes": 2145, + "private_content_check": "read in full before copying: no email address, host path or contact text; the only identity-derived field is identity_sha256", + "withheld_fields": [ + "identity_sha256" + ], + "committed_copy_sha256": "8b1720cafc546e03ce35b5730c13e642eb1261125ca50720c38e1564d6c883c4", + "committed_copy_note": "native_output below is the private output with identity_sha256 removed, serialized as native_edgar.py writes it (indent 2, sorted keys); committed_copy_sha256 is over that serialization", + "native_output": { + "automatic_retries": 0, + "cohort_count": 371, + "day": "2020-03-02", + "edgartools": "5.58.0", + "finished_at": "2026-09-24T13:15:16.514251Z", + "first_observed_at": "2026-09-24T13:15:16.509932Z", + "forms": [ + "8-K", + "8-K/A" + ], + "historical_point_in_time": false, + "http_observations": [ + { + "method": "GET", + "status": 200, + "url": "https://www.sec.gov/Archives/edgar/full-index/2020/QTR1/form.gz" + } + ], + "method": "get_filings(2020, 1, form='8-K', amendments=True, filing_date='2020-03-02')", + "mode": "native_network", + "native_context": "FILINGS COLLECTION\n\nTotal: 5 filings\nForms: 8-K\nDate Range: 2020-03-02 to 2020-03-02\n\nAVAILABLE ACTIONS:\n - Use .latest() to get most recent filing\n - Use [index] to access specific filing (e.g., filings[0])\n - Use .filter(form='C') to narrow by form type\n - Use .docs for detailed API documentation", + "native_context_truncated": false, + "omitted_empty_proxy_variables": [], + "schema_version": 1, + "selected": [ + { + "accession_number": "0001654954-20-002156", + "cik": 2186, + "company": "BK Technologies Corp", + "filing_date": "2020-03-02T00:00:00.000", + "form": "8-K" + }, + { + "accession_number": "0001193125-20-059087", + "cik": 12208, + "company": "BIO-RAD LABORATORIES, INC.", + "filing_date": "2020-03-02T00:00:00.000", + "form": "8-K" + }, + { + "accession_number": "0000013239-20-000002", + "cik": 13239, + "company": "HEXION INC.", + "filing_date": "2020-03-02T00:00:00.000", + "form": "8-K" + }, + { + "accession_number": "0000016918-20-000035", + "cik": 16918, + "company": "CONSTELLATION BRANDS, INC.", + "filing_date": "2020-03-02T00:00:00.000", + "form": "8-K" + }, + { + "accession_number": "0000018349-20-000014", + "cik": 18349, + "company": "SYNOVUS FINANCIAL CORP", + "filing_date": "2020-03-02T00:00:00.000", + "form": "8-K" + } + ], + "started_at": "2026-09-24T13:15:14.870379Z", + "status": "complete" + } + }, + "evidence_class": "native_proven", + "not_run": [ + "catalyst.py acquire / packet on this host", + "any SEC request beyond the one recorded GET", + "host_receipts.py record / review" + ] +} diff --git a/blueprints/us-equities/data/README.md b/blueprints/us-equities/data/README.md index 8bac75593..a60c8e57e 100644 --- a/blueprints/us-equities/data/README.md +++ b/blueprints/us-equities/data/README.md @@ -179,8 +179,14 @@ named check reports `status: "fail"` despite a "pass" top-level status), `promotion_gate_mismatch` (hash does not match the current file). `mode=None` (the `preflight` and `recover` call sites) is unaffected. `--snapshot` must name an actual bars/universe input file that -was run through `promotion_gate.py` -- this repository does not yet ship a -production bars/universe ingest that produces one; until that ingest exists, -an operator must supply the real file it will produce (or, for the bounded -CSV fixtures used in tests here, `fixtures/good.csv` with -`fixtures/good-gate-result.json`). +was run through `promotion_gate.py`. [`ingest_snapshot.py`](ingest_snapshot.py) +(added in #84) writes one: a bounded, read-only Alpaca daily-bar snapshot of +the adaptive-paper universe plus a receipt of counts and hashes, which +`../adaptive-paper/scheduled_trial.sh` gates before the `paper` command. +Trial `adaptive-20260923g` retained both results in +`../adaptive-paper/trials/20260923g-main-passed/` (`ingest-receipt.json` and +`gate-result.json`: 480 rows, gate `pass`, `input_sha256` equal to the +receipt's `snapshot_sha256`); the snapshot CSV itself was not retained. That +is one real ingest gating one paper trial, not the full production ingest +described earlier in this README. For the bounded CSV fixtures used in +tests here, use `fixtures/good.csv` with `fixtures/good-gate-result.json`. diff --git a/catalogs/us-equities/engines-strategies.json b/catalogs/us-equities/engines-strategies.json index 8592cd1c7..f8367f059 100644 --- a/catalogs/us-equities/engines-strategies.json +++ b/catalogs/us-equities/engines-strategies.json @@ -187,8 +187,8 @@ ], "limitations": [ "Prerelease: 2.0.0 final has not shipped; GitHub's latest non-prerelease is still v1.231.0.", - "SPY/LEAN parity gate G-a (retained-equity-replay): runtime-target.json next_acceptance records reported_execution_blocked_review_incomplete; the retained comparison summary (evidence/artifacts/comparison-progress-20260922/summary.json) records a completed BLOCKED replay of the historical one_zero case with four failed checks, all attributed to the unsupported distributions_and_cash and market_on_open_proxy mappings. A completed blocked comparison is not parity acceptance; the per-check verdict is retained in blueprints/us-equities/engine-nautilus/spy-parity/verdict.json.", - "Closing the parity gate needs an engine-native market-on-open and dividend-cash mechanism or a newly preregistered mapping manifest (gate dividend-sim-module).", + "SPY/LEAN parity gate G-a (retained-equity-replay): established 2026-09-23 for the one_zero case by blueprints/us-equities/engine-nautilus/spy-parity/verdict-v2.json (PASS, 136 checks, 0 failed; gate spy-lean-parity in gates-20260922.json), and runtime-target.json next_acceptance now records spy_lean_parity_passed_one_zero_case. Before that it recorded reported_execution_blocked_review_incomplete: the retained comparison summary (evidence/artifacts/comparison-progress-20260922/summary.json) records a completed BLOCKED replay of the historical one_zero case with four failed checks, all attributed to the unsupported distributions_and_cash and market_on_open_proxy mappings. A completed blocked comparison is not parity acceptance; the per-check verdict is retained in blueprints/us-equities/engine-nautilus/spy-parity/verdict.json.", + "The v1 blockers were closed by the v2 preregistration: native SimulationModule dividend cash and a native OCO open-fill proxy (gate dividend-sim-module, established 2026-09-23); the proxy is not a general market-on-open equivalent when the open equals the prior close, and parity covers one case only.", "No local simulation, broker session or latency benchmark beyond the synthetic FX quickstart and the September21 AAPL diagnostic was performed.", "Event semantics shared by backtest/live still require a calibrated data/fill model and recovery tests." ], diff --git a/catalogs/us-equities/engines-strategies.md b/catalogs/us-equities/engines-strategies.md index 6c43b4a95..765c12415 100644 --- a/catalogs/us-equities/engines-strategies.md +++ b/catalogs/us-equities/engines-strategies.md @@ -16,18 +16,21 @@ capacity fixture cited, no live broker fills claimed). The installed skfolio **1.2.9** acceptance covers its chronological splitter/control study. The earlier 1.231.0 source review is historical, superseded for installation by the [dated R&D readiness decision](../../docs/foundation-rd-readiness.md). NautilusTrader -remains prerelease: 2.0.0 final has not shipped, and the SPY/LEAN parity gate -**G-a** (`retained-equity-replay`) is recorded as -`reported_execution_blocked_review_incomplete` in -[`runtime-target.json`](runtime-target.json) `next_acceptance`: the retained +remains prerelease: 2.0.0 final has not shipped. The SPY/LEAN parity gate +**G-a** (`retained-equity-replay`, gate `spy-lean-parity`) was established on +2026-09-23 for the one_zero case: `spy-parity/verdict-v2.json` reads PASS with +136 checks and 0 failed, on the sealed v2 preregistration (native +SimulationModule dividend cash and a native OCO open-fill proxy; gate +`dividend-sim-module`), and [`runtime-target.json`](runtime-target.json) +`next_acceptance` now records `spy_lean_parity_passed_one_zero_case`. Before +that it recorded `reported_execution_blocked_review_incomplete`: the retained [comparison summary](../../evidence/artifacts/comparison-progress-20260922/summary.json) -records a completed **BLOCKED** replay of the historical one_zero case with four -failed checks on the unsupported `distributions_and_cash` and -`market_on_open_proxy` mappings; a completed blocked comparison is not parity -acceptance. The verdict and its 29 checks are on main under -`blueprints/us-equities/engine-nautilus/spy-parity/`; closing the gate needs an -engine-native market-on-open and dividend-cash mechanism or a newly -preregistered mapping manifest (gate `dividend-sim-module`). +records a completed **BLOCKED** v1 replay of the historical one_zero case with +four failed checks on the then-unsupported `distributions_and_cash` and +`market_on_open_proxy` mappings. The v1 verdict and its 29 checks stay on main +under `blueprints/us-equities/engine-nautilus/spy-parity/`. Parity covers one +case, and the open-fill proxy is not a general market-on-open equivalent when +the open equals the prior close. The current target also records bounded AAPL replay and Alpaca paper evidence; neither establishes SPY parity, a strategy edge or complete broker recovery. diff --git a/catalogs/us-equities/gates-20260922.json b/catalogs/us-equities/gates-20260922.json index d3fe4f7f4..c278fdead 100644 --- a/catalogs/us-equities/gates-20260922.json +++ b/catalogs/us-equities/gates-20260922.json @@ -80,7 +80,7 @@ "pointer": "/status", "equals": "pass" }, - "note": "promotion_gate.py (pandera 0.33.1 in its own venv) passes the good fixture and fails closed on the bad and null-price fixtures (blueprints/us-equities/data/fixtures/*-gate-result.json); runner.validate_preflight refuses paper without a matching passing result. No real snapshot ingest exists yet, so a production paper run is not yet gated end-to-end." + "note": "promotion_gate.py (pandera 0.33.1 in its own venv) passes the good fixture and fails closed on the bad and null-price fixtures (blueprints/us-equities/data/fixtures/*-gate-result.json); runner.validate_preflight refuses paper without a matching passing result. Real ingest, recorded 2026-09-24 (status, evidence_class and receipt_path unchanged; the gate was already established and scripts/trading_gates.py lists no flip candidate): blueprints/us-equities/data/ingest_snapshot.py (#84) is a bounded read-only Alpaca daily-bar ingest for the adaptive-paper universe. Trial adaptive-20260923g (blueprints/us-equities/adaptive-paper/trials/20260923g-main-passed/, run by scheduled_trial.sh from a read-only archive of main 843dc8f) retained its ingest-receipt.json (24 symbols, 20 sessions 2026-08-25 to 2026-09-22, 480 rows, SIP raw 1Day, no coverage problems, snapshot_sha256 75e67c5dc345d67c...) and gate-result.json (status pass, 12 of 12 checks pass, row_count 480, input_sha256 equal to that snapshot hash), and the paper command given that result and snapshot passed (scheduled-trial.log). This is one real ingest gating one paper trial, not the full production ingest blueprints/us-equities/data/README.md describes (entitlements, corporate actions, symbol history, as-of universe); the snapshot CSV itself was not retained, and the gate that ran was 843dc8f's promotion_gate.py, whose bytes differ from the current file. Until 2026-09-23 no real snapshot ingest had gated a paper run." }, { "id": "rc5-supply-chain-scan", diff --git a/catalogs/us-equities/runtime-target.json b/catalogs/us-equities/runtime-target.json index 1f97cd244..524e0cfc8 100644 --- a/catalogs/us-equities/runtime-target.json +++ b/catalogs/us-equities/runtime-target.json @@ -11,6 +11,8 @@ "max_total_requests_per_minute": 200, "max_submission_requests_per_minute": 180, "native_synthetic_capacity": "180 fills / 90 roundtrips in60.4282seconds;178.7246submissions/minute;flat;zero broker connections", + "native_paper_capacity": "2026-09-24 order-throughput harness on Alpaca paper from the WSL2 workstation (harness 4911baf): 180 order actions in each of 5 full one-minute windows, 496 submits and 496 cancels, 0 HTTP 429, websocket completeness 1.0, reconciled with 0 open orders, at the account's observed 200/min trading limit. Self-reported by the harness; an independent alpaca-py listing matched the order counts only (not rates or latencies). Non-marketable probes cancelled individually, not strategy trades or fills. 1000/min was not measured; an earlier regular-session run froze on cancel confirmations of about 16 s and is retained as a non-pass.", + "native_paper_capacity_evidence": "blueprints/us-equities/order-throughput/evidence/index-20260924.json", "broker_status": "Adaptive 1x broker trial passed 2026-09-23 on main 843dc8f (adaptive-paper/receipt.json broker_readiness passed; trials/20260923g-main-passed: 300.5 s, 5 real paper orders, 4 native fills, reconciled flat); earlier one-SPY broker receipt retained", "market_research": "Bounded50-provider-news-item and24-IEX-snapshot collection observed; partial news coverage; no execution eligibility", "selection": "Reuse selected native engine and official SDK; no replacement justified by repository recency", @@ -138,9 +140,10 @@ "next_acceptance": [ { "id": "retained-equity-replay", - "status": "reported_execution_blocked_review_incomplete", - "scope": "The September 22 source-host SPY/LEAN one_zero harness returned a completed BLOCKED comparison with four failed checks attributed to dividend cash posting and market-on-open mappings. This is recorded progress, not accepted parity; hardening and qualified rerun remain open. The separately completed AAPL diagnostic deliberately avoids corporate-action dates and does not close this requirement.", - "executed_evidence_ref": "evidence/artifacts/comparison-progress-20260922/summary.json#/rows/6" + "status": "spy_lean_parity_passed_one_zero_case", + "scope": "Gate spy-lean-parity (catalogs/us-equities/gates-20260922.json) was established 2026-09-23 on the sealed v2 preregistration: verdict-v2.json reads PASS for the historical one_zero case with 136 checks, 0 failed and 0 skipped (106/106 execution checks) and preregistration_qualifying true, with dividend cash from a native rc5 SimulationModule and the open fill from native OCO-linked orders (gate dividend-sim-module, also established). The six earlier v2 replays ran before review and are disclosed in replay-history-v2.json with an accepted deviation. The September 22 v1 verdict.json (BLOCKED, four failed checks on the then-unsupported dividend-cash and market-on-open mappings) is retained. Limits: one case only; the open-fill proxy is not a general market-on-open equivalent when the open equals the prior close; parity is agreement with the frozen LEAN oracle, not strategy merit. The separately completed AAPL diagnostic deliberately avoids corporate-action dates and is not this gate.", + "executed_evidence_ref": "blueprints/us-equities/engine-nautilus/spy-parity/verdict-v2.json", + "earlier_evidence_ref": "evidence/artifacts/comparison-progress-20260922/summary.json#/rows/6" }, { "id": "broker-state-failures", @@ -150,7 +153,7 @@ { "id": "separate-paper-adapters", "status": "bounded_alpaca_paper_smoke_passed_ibkr_1231_python_paper_passed_rc5_pending", - "scope": "Alpaca1SPY long-flat trial passed with2actual writes, -0.08USD cash-matched gross PnL, no positions/open orders, and completed-trial recovery with0additional writes. Five unchanged upstream read-only tests passed. IBKR: a bounded 2026-09-23 paper run through NautilusTrader 1.231.0's Python IB adapter passed (accept, cancel, fill, flatten; net -2.08 USD; flat), which is not rc5 destination acceptance; rc5 stock orders remain blocked by nautilus_trader#4983 (open). Continuous operation, native broker faults, Elite throughput and IBKR reconnect/restart reconciliation remain separate.", + "scope": "Alpaca1SPY long-flat trial passed with2actual writes, -0.08USD cash-matched gross PnL, no positions/open orders, and completed-trial recovery with0additional writes. Five unchanged upstream read-only tests passed. IBKR: a bounded 2026-09-23 paper run through NautilusTrader 1.231.0's Python IB adapter passed (accept, cancel, fill, flatten; net -2.08 USD; flat), which is not rc5 destination acceptance; rc5 stock orders remain blocked by nautilus_trader#4983 (open). Continuous operation, native in-flight broker faults (see broker-state-failures), Elite 1000/min throughput (200/min measured; see adaptive_practice native_paper_capacity) and IBKR reconnect/restart reconciliation remain separate.", "executed_evidence_ref": "blueprints/us-equities/engine-nautilus/ibkr-paper-orders/evidence/receipt-20260923-passed.json", "rc5_blocker": "https://github.com/nautechsystems/nautilus_trader/issues/4983" } diff --git a/manifests/evidence.json b/manifests/evidence.json index 193ace526..109354a67 100644 --- a/manifests/evidence.json +++ b/manifests/evidence.json @@ -1217,6 +1217,25 @@ ], "path": "blueprints/us-equities/catalyst-provenance/access-resolution.json" }, + { + "id": "native-sec-new-host-20260924", + "kind": "native_cli_e2e", + "component_ids": [ + "edgartools" + ], + "claim": "New-host observation on the WSL2 Threadripper workstation: native EdgarTools 5.58.0, in an isolated runtime whose installed packages equal requirements.lock, completed the bounded get_filings request for 2020-03-02 with one SEC archive GET answered 200, 371 8-K/8-K/A index rows and the same five selected CIK/accession rows as the 2026-09-19 receipt. It adds a host; it does not replace the 2026-09-19 receipt.", + "limitations": [ + "One native upstream metadata request (the quarterly form index) on one host at one time. The provenance adapter (catalyst.py acquire and packet) was not run on this host, so no daily index, header bytes or temporal packets are observed here.", + "Unique-accession counts, forms breakdown and the complete compressed source's bytes and gzip validation were measured in 2026-09-19 and are not re-measured by this output, which records only the cohort count and five selected rows.", + "The exact command line was not retained. The output's keys and fields match native_edgar.py's native_network receipt, but that the file came from this repository's native_edgar.py is inferred from its schema, not recorded.", + "The runtime package check (installed packages equal requirements.lock) was made when this receipt was written, after the request; the request-time environment is inferred from it.", + "The contact identity is private. Its unsalted SHA-256 in the private output is withheld from the committed copy, because a guessed contact could be confirmed against it; a matching contact between the two hosts is therefore not shown.", + "Successful access on this host does not establish historical availability, as-known data or a strategy result; 2020 filing dates do not imply this runtime observed the filings then.", + "Not a host_receipts.py receipt: that recorder executes its own commands, so it cannot import an earlier output. No platform_status, landscape verdict or trading gate changes because of this file." + ], + "path": "blueprints/us-equities/catalyst-provenance/new-host-native-network-20260924.json", + "host_scope": "WSL2 Threadripper workstation (linux-wsl2-x86_64); new-host observation alongside, not replacing, native-sec-access-resolution-20260919" + }, { "id": "sec-catalyst-dataset-native-20260920", "kind": "native_cli_e2e", @@ -7323,8 +7342,8 @@ }, { "path": "blueprints/us-equities/catalyst-provenance/access-resolution.md", - "sha256": "5196a315acc411406df5b4510b5e850bb87db8b068a2c73802d62fa8b2390507", - "bytes": 5539 + "sha256": "4871969dd4d56bd00c165080268062c106d068e98a7b562c52e2652d9b947084", + "bytes": 6270 }, { "path": "blueprints/us-equities/catalyst-provenance/catalyst.py", @@ -7346,6 +7365,11 @@ "sha256": "72af6528dad542842f63fc3c765c3a3c21867d36942126f69f3f03c298983df7", "bytes": 4843 }, + { + "path": "blueprints/us-equities/catalyst-provenance/new-host-native-network-20260924.json", + "sha256": "6698720da2ae22c941e67c9515364879c937c44ab0f2d93fd44fca405b165215", + "bytes": 7543 + }, { "path": "blueprints/us-equities/catalyst-provenance/public-stars-refresh.json", "sha256": "d1e9634355ee8e2548a8e22a98460cfc346f6df9a72fe28b2bf94db73ab1a731", @@ -7483,8 +7507,8 @@ }, { "path": "blueprints/us-equities/data/README.md", - "sha256": "cedf2256164a6f93bb79a3859a8660e6bcf5fd20378dac7ebdd76738213aa9e4", - "bytes": 11630 + "sha256": "8810322b8daa2459970f15432bea4c8476a683742327a81320f514ac50f544de", + "bytes": 12108 }, { "path": "blueprints/us-equities/data/fixtures/bad-gate-result.json", @@ -9523,13 +9547,13 @@ }, { "path": "catalogs/us-equities/engines-strategies.json", - "sha256": "df7ca25f3df2d2a08d12fb47f869706a11209b00798cd05ed3d56ea38916d8f0", - "bytes": 105331 + "sha256": "cc4dfdb8087419ccbea22d6af9a1d6bbf0359ba9821aa0f58a5754a350350136", + "bytes": 105732 }, { "path": "catalogs/us-equities/engines-strategies.md", - "sha256": "4452709796abb64c66064c8e733ab29843ef271b1e8c8bb09777364f48ff415c", - "bytes": 25190 + "sha256": "74d4c7f385b6de7ff9f9011647b87eed6c7c3a2a24334732875dc0d4a227277b", + "bytes": 25459 }, { "path": "catalogs/us-equities/foundation-memory.json", @@ -9548,8 +9572,8 @@ }, { "path": "catalogs/us-equities/gates-20260922.json", - "sha256": "8c27800fd27821dec706a8cced1eff1cc688396fb9b87fe13e50f4572d3774a2", - "bytes": 41396 + "sha256": "9379c0ce9c85b392382cfacca7abbe975bf61c42ae7cd59840db66d8178a5675", + "bytes": 42536 }, { "path": "catalogs/us-equities/hosting-source-review.json", @@ -9623,8 +9647,8 @@ }, { "path": "catalogs/us-equities/runtime-target.json", - "sha256": "f21f52bc1fc539e89a2569e329f840291ffc90f0692731cafc057d17da34f137", - "bytes": 12804 + "sha256": "6fcbe0068c22be5ec55d9188dd04c2579acc5f09f80abbb22e1da75c45611ab1", + "bytes": 14377 }, { "path": "catalogs/us-equities/security-identity-review.json", @@ -28518,8 +28542,8 @@ }, { "path": "observability/grand-dashboard/state.json", - "sha256": "ad2ad7382426b77a6c1f2c4bf60f48504ed4e00a856337bdf197243f51ccd191", - "bytes": 11607 + "sha256": "4a79f8135d12671a110df703f3c9bd6537943970f77a0a37fa4607c12e339c3a", + "bytes": 11718 }, { "path": "observability/native-data/README.md", diff --git a/observability/grand-dashboard/state.json b/observability/grand-dashboard/state.json index f5374ee95..249f0d2f7 100644 --- a/observability/grand-dashboard/state.json +++ b/observability/grand-dashboard/state.json @@ -1,6 +1,6 @@ { "schema_version": 1, - "recorded_at_utc": "2026-09-24T07:04:57Z", + "recorded_at_utc": "2026-09-24T15:52:10Z", "meaning": "Recorded checkpoint combining preserved paper/simulation records with current foundation source review and separate Workflow/context-policy records. Linked receipts retain their own dates and acceptance scopes; emitter freshness is separate from task acceptance.", "lanes": [ { @@ -30,15 +30,15 @@ "kind": "gate", "id": "alpaca-paper-operational", "title": "Alpaca bounded paper lifecycle", - "state": "smoke passed / adaptive 1x broker trial passed 2026-09-23 / native fault behaviour partial (C01 C02 native)", + "state": "smoke passed / adaptive 1x broker trial passed 2026-09-23 / native fault gate established 2026-09-24 (definitive rejection and repeat cancel only)", "evidence_ref": "blueprints/us-equities/paper-e2e-20260921/paper-receipt.json" }, { "kind": "gate", "id": "alpaca-paper-rate", "title": "Alpaca observed Trading API rate", - "state": "observed200REST/min / adaptive submits180 plus management reserve / actual throughput pending", - "evidence_ref": "blueprints/us-equities/adaptive-paper/receipt.json" + "state": "observed200REST/min / native paper capacity 180 actions/min passed 2026-09-24 (self-reported / counts independently listed) / 1000/min not measured", + "evidence_ref": "blueprints/us-equities/order-throughput/evidence/index-20260924.json" }, { "kind": "gate", From 031de300a6f25048c29845e5c482782778828c61 Mon Sep 17 00:00:00 2001 From: Scout Date: Thu, 24 Sep 2026 12:23:42 -0400 Subject: [PATCH 2/2] Reword the stale SPY/LEAN parity clause in the Nautilus engine acceptance engine.acceptance still said SPY/LEAN parity remained open although gate spy-lean-parity is established. It now scopes parity to the one_zero case (verdict-v2.json, one case, open-fill proxy limit) and keeps realistic liquidity and rc5 native broker adapter acceptance open. Co-Authored-By: Claude Opus 5.5 (1M context) --- catalogs/us-equities/runtime-target.json | 2 +- manifests/evidence.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/catalogs/us-equities/runtime-target.json b/catalogs/us-equities/runtime-target.json index 524e0cfc8..4f627dd7d 100644 --- a/catalogs/us-equities/runtime-target.json +++ b/catalogs/us-equities/runtime-target.json @@ -33,7 +33,7 @@ "install_command": "uv pip install --python \"$NAUTILUS_ENV/bin/python\" --pre \"nautilus_trader==2.0.0rc5\"", "supported_python": ">=3.12,<3.15; vanilla CPython", "linux_support": "Official installation guide: Ubuntu22.04+ and glibc>=2.35; wheel platform tags are not a broader tested-host claim.", - "acceptance": "Retained upstream synthetic EURUSD quickstart and GitHub installation/replay acceptance; September21 native local AAPL diagnostic adds15 retained bars and two five-roundtrip baseline/fee-slippage scenarios with exact cash accounting. SPY/LEAN parity, realistic liquidity and native broker adapter acceptance remain open.", + "acceptance": "Retained upstream synthetic EURUSD quickstart and GitHub installation/replay acceptance; September21 native local AAPL diagnostic adds15 retained bars and two five-roundtrip baseline/fee-slippage scenarios with exact cash accounting. SPY/LEAN parity is established for the historical one_zero case only (gate spy-lean-parity, blueprints/us-equities/engine-nautilus/spy-parity/verdict-v2.json; one case, and the open-fill proxy is not a general market-on-open equivalent). Realistic liquidity and rc5 native broker adapter acceptance remain open.", "retained_comparison_engine": "LEAN native source-build and dated historical simulation receipts", "sources": [ "https://github.com/nautechsystems/nautilus_trader/releases/tag/v2.0.0rc5", diff --git a/manifests/evidence.json b/manifests/evidence.json index 109354a67..d85a68794 100644 --- a/manifests/evidence.json +++ b/manifests/evidence.json @@ -9647,8 +9647,8 @@ }, { "path": "catalogs/us-equities/runtime-target.json", - "sha256": "6fcbe0068c22be5ec55d9188dd04c2579acc5f09f80abbb22e1da75c45611ab1", - "bytes": 14377 + "sha256": "a52ce845034f04c6486a7c9c7e294f585d6cf0d51639a5c391214ce5ab421930", + "bytes": 14602 }, { "path": "catalogs/us-equities/security-identity-review.json",