Skip to content

Commit ecfa112

Browse files
trading: NativeStack2604 research runtime, EdgarTools 5.60.0 (runtime and catalog), hash-pinned build backend (#703)
### Scope This PR packages the NativeStack2604 north-star research runtime, moves EdgarTools to 5.60.0 in the runtime and the catalog together, and closes the unit-T PR-1 additions. - **Runtime bundle.** Install and offline-acceptance scripts, an owned uv project, the locked transitive set (242 entries, CPython 3.12.3), a README, the decision record and sanitized receipts. The project carries NautilusTrader 2.0.0rc5 with the in-tree IBKR adapter, alpaca-py 0.44.0 and the research set. The recorded run (job-031, 2026-10-04) shows install PASS and 25/25 offline acceptance PASS on NativeStack2604. That run used EdgarTools 5.58.0 and is labelled pre-relock evidence. - **EdgarTools 5.60.0.** The catalog and the runtime move together: - The catalog's own native SEC acceptance passed at 5.60.0 on 2026-10-04 (receipt `native-sec-edgartools-5600-20261004`): one GET answered 200, 0 retries, 371 rows, and the same five CIK/accession rows as the 2026-09-19 and 2026-09-24 receipts. - `data-research.json` data-edgartools moves to v5.60.0 (`1e7a61b3`). The catalyst-provenance lock now equals the accepted environment, with 4 versions moved. Live plan rows and recipe pins move with their tests; dated historical snapshots keep 5.58.0. - CI at the tag was assessed from the runs: - the release-day push runs were green; - the Oct 3 scheduled run failed only on the clock-dependent #893 TTM cassette tests, which upstream fixed test-only in `9ea5def31b` and `156c45b327`; - main's Oct 4 scheduled run passed. - **Build backend pinned by hash.** `antlr4-python3-runtime` 4.9.3 is the lock's only entry without a wheel. `[tool.uv] build-constraint-dependencies` pins its setuptools build backend to 84.0.0 with the lock's own wheel and sdist hashes, and uv.lock records it. Proof: - positive: cold-cache sync exit 0, with antlr4's WHEEL reading `Generator: setuptools (84.0.0)`; - NC-1 exits 1, NC-2 exits 1 and NC-3 exits 2. - **Census test and shared sync vector.** A census test fixes the wheel-less set at {antlr4} and checks that the constraint equals the lock's setuptools entry. `sync-trading-2604.sh` holds the one install vector (`uv lock --check`; `uv sync --locked --no-dev`; `uv pip check`), which the installer runs and the trading-native CI job (PR-2) will reuse. A byte-identity test pins the installer to it. - **OSV coverage.** osv-scanner now scans the runtime's uv.lock. Base: the branch is based on `38ac9aca`; the landing queue refreshes it onto current main. Lane: `lane:trading`. Paper and research only; nothing here enables a live mode, endpoint or key, and no broker or provider call was made. ### SOTA sources - uv 0.12.17: [projects](https://github.com/astral-sh/uv/blob/0.12.17/docs/guides/projects.md), [locked sync](https://github.com/astral-sh/uv/blob/0.12.17/docs/concepts/projects/sync.md), [build constraints](https://github.com/astral-sh/uv/blob/0.12.17/docs/concepts/projects/build.md) and the [settings schema](https://github.com/astral-sh/uv/blob/0.12.17/uv.schema.json), plus `crates/uv-build-frontend/src/lib.rs:53-60` for the default legacy backend. - EdgarTools [v5.60.0](https://github.com/dgunning/edgartools/releases/tag/v5.60.0) (`1e7a61b3a142dbf5d19bc82444f85239c1786348`), [PyPI 5.60.0](https://pypi.org/pypi/edgartools/5.60.0/json), the [Oct 3 scheduled run](https://github.com/dgunning/edgartools/actions/runs/37122012086), and the test-only fix commits `9ea5def31b` and `156c45b327`. - NautilusTrader [rc5 quickstart at 1b0a49d2](https://github.com/nautechsystems/nautilus_trader/blob/1b0a49d2792a9432a3aca3fcb617ce7a630d905e/docs/getting_started/quickstart.py). - The trading unit T final decision record (cross-family consensus, 2026-10-04), units PR-1 and section 4. - This repository: `scripts/host_receipts.py`, `adoption/host-receipt.schema.json`, `docs/acceptance-evidence-policy.md`, `docs/contributing-evidence.md` and `docs/lanes.md`. ### Evidence-class table | Claim | Evidence class | Receipt / command | | --- | --- | --- | | Oct 4 install and 25/25 offline acceptance on NativeStack2604 at EdgarTools 5.58.0 | `native_proven`, historical host-local, pre-relock | `evidence/receipts/native-trading-runtime-2604-20261004.json` | | Native SEC acceptance at EdgarTools 5.60.0 | `native_proven` (one bounded request) | `blueprints/us-equities/catalyst-provenance/native-network-edgartools-5600-20261004.json` | | 8-K parse at 5.60.0 equals 5.58.0 up to whitespace | `local_integration` (offline fixture) | `evidence/artifacts/edgartools-5600-20261004/` | | Build constraint takes effect and fails closed | `local_integration` (scratch cold-cache proofs) | `evidence/artifacts/trading-runtime-2604-20261004/build-constraint-proof.json` | | NativeStack2604 re-run on the final lock | pending | the command center re-runs install and accept; a separate receipt follows | | Paper or broker execution | none claimed | the existing gates remain open | ### Local commands run All runs used a TMPDIR outside /tmp and outside the worktree, and `nice -n 19`. ```text uv 0.12.17 --no-config lock --check (bundle vector) exit 0 python3 -m unittest tests.test_trading_2604_lock 11 OK python3 -m unittest tests.test_catalyst_dataset tests.test_lifecycle_sample OK python3 -m unittest tests.test_osv_lockfile_coverage OK python3 scripts/validate.py exit 0 python3 scripts/evidence_manifest.py --check exit 0 python3 scripts/validate_catalogs.py exit 0 python3 scripts/catalog_decisions.py --check exit 0 python3 scripts/host_receipts.py validate exit 0 bash -n install / accept / sync scripts exit 0 python3 scripts/validate.py --scan-file <each changed file> exit 0 git diff --check exit 0 ``` ShellCheck is not installed here. The full suite runs in CI. ### Decision record `docs/decisions/2026-10-04-trading-2604-preparation.md` covers the runtime, the EdgarTools 5.60.0 move with its CI assessment, and the build constraint with its proofs. The 5.59.1 overturn test is superseded by the 5.60.0 acceptance. Python 3.12.3 versus 3.13 ratification stays open. ### Host evidence - [x] `python3 scripts/host_receipts.py validate` passes. - [x] The NativeStack2604 re-run on the final lock is requested from the command center; it gets its own receipt. - [x] No platform-status change. ### Checklist - [x] No workflow changed; osv-scanner coverage is a data-file entry. - [x] Published files were sanitized and scanned; no secret was added, and the SEC contact appears only as a withheld hash in the private original. - [x] No paid hosting or billing surface. - [x] No live-trading enablement. GPT-6.1 Sol rounds (packaging, 5.60.0, round c) through the packaged SDK worker; the coordinator committed. A cross-family Claude read follows before the landing request. ### Recorded residuals (bounded review, 2026-10-05) Claude Opus gate read pinsrc-d at `ac5ca6658125` returned ACCEPT with no p1. Under the bounded review rule these p2 items land as recorded residuals, each owed as a follow-up: - `tests/test_architecture_pin_source.py:119, :125-126; docs/harness-defaults.md:89 ('exact version'); test name at :182 ('rejects_other_versio`: The right-hand lookahead (?![\d.]) and the unbounded left side accept PEP 440 suffixes (0.44.0rc1, a1, b2, post1, +local, -1, -rc.1) and left-prefixed package names (foo-alpaca-py 0.44.0). ### Recorded residuals (bounded review, 2026-10-05; Claude Opus gate read pinsrc-f at af3af3a) Claude Opus gate read pinsrc-f at `af3af3a4c88d` returned ACCEPT with no p1. Under the bounded review rule these p2 items land as recorded residuals, each owed as a follow-up: - `evidence/receipts/native-trading-runtime-2604-20261004.json:464; evidence/receipts/edgartools-5600-pin-move-20261004.json:104; manifests/evi`: Dated superseded_note fields and the decision paragraph still call lock 4c98672d 'final' and say the rerun is resolved; - `catalogs/foundation/new-wsl-architecture-20261001.json:1534-1541 (DVC arm; install command :1539)`: The foundation new-WSL architecture still tells the new distribution to pip install the current DVC, with no pointer to PYSEC-2026-2447 or the data-dvc hold. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
1 parent 424b8a7 commit ecfa112

59 files changed

Lines changed: 11112 additions & 144 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/osv-scanner-lockfiles.json‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@
5454
{
5555
"path": "blueprints/memory-stack/native-qualification/uv.lock"
5656
},
57+
{
58+
"path": "blueprints/us-equities/runtime-2604/trading-2604-runtime/uv.lock"
59+
},
5760
{
5861
"path": "blueprints/us-equities/adaptive-paper/requirements.txt"
5962
},
@@ -236,6 +239,10 @@
236239
"path": "blueprints/memory-stack/native-qualification/pyproject.toml",
237240
"lockfile": "blueprints/memory-stack/native-qualification/uv.lock"
238241
},
242+
{
243+
"path": "blueprints/us-equities/runtime-2604/trading-2604-runtime/pyproject.toml",
244+
"lockfile": "blueprints/us-equities/runtime-2604/trading-2604-runtime/uv.lock"
245+
},
239246
{
240247
"path": "blueprints/gap-wave2-20260923/us-equities__portfolio-risk/requirements-libs.in",
241248
"lockfile": "blueprints/gap-wave2-20260923/us-equities__portfolio-risk/requirements-libs.lock"

‎blueprints/token-native-focus/saturation-audit.json‎

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3206,10 +3206,10 @@
32063206
{
32073207
"component_id": "edgartools",
32083208
"repository": "https://github.com/dgunning/edgartools",
3209-
"version": "5.58.0",
3209+
"version": "5.60.0",
32103210
"profile": "supporting",
32113211
"role": "Native SEC filing-index acquisition and local parsing; bounded raw-source provenance with historical strategy availability still gated",
3212-
"installation_assessment": "runtime present at retained native operation date",
3212+
"installation_assessment": "At 5.58.0: runtime present at retained native operation date. The selected 5.60.0 pin has scoped native SEC acceptance on 2026-10-04 in native-sec-edgartools-5600-20261004 and NativeStack2604 install PASS plus 25/25 offline acceptance on 2026-10-05 in native-trading-runtime-2604-rerun-d02c0827-20261005. Earlier lifecycle stages and artifact baselines below retain their 5.58.0 scopes; this row mirrors the selected stack pin without recertifying the host through this audit. Independent review of the NativeStack2604 rerun remains pending.",
32133213
"current_host_recertified_by_this_audit": false,
32143214
"native_integration": {
32153215
"recipe_source": "adoption/manifest.json#/recipe_map/edgartools",
@@ -3258,12 +3258,22 @@
32583258
"id": "claude-repository-evidence-20260921",
32593259
"path": "evidence/receipts/claude-repository-evidence-20260921.json",
32603260
"kind": "native_cli_e2e"
3261+
},
3262+
{
3263+
"id": "native-sec-edgartools-5600-20261004",
3264+
"path": "blueprints/us-equities/catalyst-provenance/native-network-edgartools-5600-20261004.json",
3265+
"kind": "native_cli_e2e"
3266+
},
3267+
{
3268+
"id": "native-trading-runtime-2604-rerun-d02c0827-20261005",
3269+
"path": "evidence/receipts/native-trading-runtime-2604-rerun-20261005.json",
3270+
"kind": "native_cli_e2e"
32613271
}
32623272
],
32633273
"retained_operation_ids": [
32643274
"fresh-edgar-markdown"
32653275
],
3266-
"scope": "Exact retained same-source comparison with the explicitly stated shared acceptance gate; not causal provider savings."
3276+
"scope": "At 5.58.0: Exact retained same-source comparison with the explicitly stated shared acceptance gate; not causal provider savings. The added 5.60.0 receipts record native SEC network acceptance and destination-host install/offline checks within their stated scopes; they do not establish a new token baseline or independent review."
32673277
},
32683278
"artifact_baselines": [
32693279
{
@@ -3287,7 +3297,7 @@
32873297
},
32883298
"remaining_install_gap": null,
32893299
"remaining_install_gap_reason": "No additional useful installation gap identified for the selected role in this bounded evidence review; full lifecycle/optional-feature limits remain explicit.",
3290-
"source_pin": "abe44344c56cf4bfb5443e0debca7e39342f6e7a",
3300+
"source_pin": "1e7a61b3a142dbf5d19bc82444f85239c1786348",
32913301
"lifecycle_stages": {
32923302
"install": {
32933303
"status": "observed_installed",

‎blueprints/us-equities/adaptive-paper/README-research.md‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,9 @@ scanner. The [dataset bridge](../catalyst-dataset/dataset.py) already has the
108108
EdgarTools header/item taxonomy, DuckDB materialization and as-of filtering.
109109
Extend those contracts rather than duplicate their timestamp or filing parsers.
110110

111-
The installed **EdgarTools 5.58.0**, reviewed at
112-
[`abe44344c56cf4bfb5443e0debca7e39342f6e7a`](https://github.com/dgunning/edgartools/tree/abe44344c56cf4bfb5443e0debca7e39342f6e7a),
111+
The current **EdgarTools 5.60.0** recipe is pinned at
112+
[`1e7a61b3a142dbf5d19bc82444f85239c1786348`](https://github.com/dgunning/edgartools/tree/1e7a61b3a142dbf5d19bc82444f85239c1786348),
113+
with bounded [SEC index acceptance](../catalyst-provenance/native-network-edgartools-5600-20261004.json). It
113114
has `edgar.get_current_filings(form="8-K", page_size=40)` for a bounded current
114115
page. Do not use `page_size=None`, which walks all pages. Source review of
115116
`edgar/current_filings.py::get_current_entries_on_page` identifies a 503-as-empty

‎blueprints/us-equities/catalyst-dataset/README.md‎

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,12 @@ anchors are:
2020
- Latest source observation: `2026-09-19T23:48:29.649862Z`. Acceptance timestamps
2121
are from 2020; they do not establish when this system received the information.
2222

23-
Stage A uses the existing EdgarTools **5.58.0** environment. It verifies the
23+
Stage A now requires EdgarTools **5.60.0** from the shared catalyst-provenance
24+
lock. The recorded September 20 execution used **5.58.0**; its native receipt
25+
and input/output hashes remain historical. A new parser run produces new anchors
26+
and needs its own dataset acceptance. The October 4
27+
[SEC index receipt](../catalyst-provenance/native-network-edgartools-5600-20261004.json)
28+
qualifies bounded index access, rather than this complete dataset bridge. It verifies the
2429
externally supplied receipt hash and every declared blob, then reuses
2530
`catalyst.packet()` and its current strict raw-header parser. It does not trust
2631
the original receipt's stale `selected[].event` values. Native
@@ -57,10 +62,11 @@ identify exhibits.
5762

5863
## Primary sources and limits
5964

60-
- [EdgarTools 5.58.0 release](https://github.com/dgunning/edgartools/releases/tag/v5.58.0), MIT;
61-
installed execution is pinned to 5.58.0, not changing default-branch HEAD.
62-
- [Pinned SGML header parser](https://github.com/dgunning/edgartools/blob/abe44344c56cf4bfb5443e0debca7e39342f6e7a/edgar/sgml/sgml_header.py)
63-
and [native current-report taxonomy](https://github.com/dgunning/edgartools/blob/abe44344c56cf4bfb5443e0debca7e39342f6e7a/edgar/company_reports/current_report.py).
65+
- [EdgarTools 5.60.0 release](https://github.com/dgunning/edgartools/releases/tag/v5.60.0), MIT;
66+
the current recipe is pinned to release commit `1e7a61b3a142dbf5d19bc82444f85239c1786348`.
67+
The dated native execution below used 5.58.0.
68+
- [Pinned SGML header parser](https://github.com/dgunning/edgartools/blob/1e7a61b3a142dbf5d19bc82444f85239c1786348/edgar/sgml/sgml_header.py)
69+
and [native current-report taxonomy](https://github.com/dgunning/edgartools/blob/1e7a61b3a142dbf5d19bc82444f85239c1786348/edgar/company_reports/current_report.py).
6470
- [Official Form 8-K](https://www.sec.gov/about/forms/form8-k.pdf): Items 5.02,
6571
7.01, 8.01 and 9.01 describe different reporting obligations. Native short
6672
labels are not a substitute for the full definitions; the 5.02 official title

‎blueprints/us-equities/catalyst-dataset/dataset.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
_path_safety = importlib.util.module_from_spec(_PATH_SAFETY_SPEC)
2121
_PATH_SAFETY_SPEC.loader.exec_module(_path_safety)
2222
MAX_JSON = 20 * 1024 * 1024
23-
EDGAR_VERSION = "5.58.0"
23+
EDGAR_VERSION = "5.60.0"
2424
DUCKDB_VERSION = "1.5.5"
2525
LIMITATIONS = [
2626
"Offline metadata conversion of retained sources; no new SEC acquisition.",

‎blueprints/us-equities/catalyst-provenance/README.md‎

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,31 @@
11
# Native EdgarTools and catalyst provenance
22

3-
**Current follow-up:** [SEC access is working for the tested archive path](access-resolution.md)
4-
after the user supplied a monitored contact. Native acquisition and the real
5-
daily-index compatibility fix have separate evidence from the initial wave below.
6-
The original failure receipts remain unchanged.
3+
**Current pin — 2026-10-04:** **EdgarTools 5.60.0** at
4+
`1e7a61b3a142dbf5d19bc82444f85239c1786348`, with the accepted 42-package
5+
[freeze](requirements.lock). The
6+
[native SEC receipt](native-network-edgartools-5600-20261004.json) records one
7+
HTTP 200, zero retries, 371 index rows and the same five selected CIK/accession
8+
rows as the September 19 and September 24 receipts, on NativeStack with CPython
9+
3.12.3. It adds bounded acceptance at this version; original availability and
10+
the broader provenance adapter remain separate. The release notes are
11+
[v5.60.0](https://github.com/dgunning/edgartools/releases/tag/v5.60.0).
12+
13+
The supplied October 4 [offline fixture evidence](../../../evidence/receipts/edgartools-5600-pin-move-20261004.json)
14+
records the two-member synthetic index and pinned document parser at 5.60.0,
15+
without SEC requests. Its 5,308-byte Markdown differs from the 5,325-byte
16+
5.58.0/5.59.1 outputs only by paragraph whitespace; normalized text is identical
17+
at 5,218 characters. This is local offline-fixture evidence.
18+
19+
[Earlier access resolution](access-resolution.md), the daily-index compatibility
20+
fix and the initial failure receipts below retain their original dates, versions
21+
and scope. The separate
22+
[NativeStack2604 rerun receipt](../../../evidence/receipts/native-trading-runtime-2604-rerun-20261005.json)
23+
records historical installation PASS and 25/25 offline acceptance at 5.60.0 on
24+
lock `4c98672d14147a1b` (before the 2026-10-05 DVC removal), at `d02c0827` on
25+
2026-10-05, 01:00:17Z–01:01:07Z. Independent review remains pending. The current
26+
lock `1fb9f8ca6fef9c47` is not yet qualified on NativeStack2604. The 2604 co-op
27+
will re-run installation and `accept-trading-2604.sh` for the current 24 checks
28+
and write a separate receipt.
729

830
## Initial wave
931

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
{
2+
"schema_version": 1,
3+
"id": "native-sec-edgartools-5600-20261004",
4+
"kind": "native_cli_e2e",
5+
"component_ids": [
6+
"edgartools"
7+
],
8+
"claim": "Pin-move acceptance on the WSL2 Threadripper workstation: native EdgarTools 5.60.0 (tag v5.60.0, 1e7a61b3a142dbf5d19bc82444f85239c1786348), in a scratch CPython 3.12.3 environment whose 42 installed packages equal requirements.lock as updated with this receipt, completed the bounded get_filings request for 2020-03-02 with one SEC archive GET answered 200, no automatic retries, 371 8-K/8-K/A index rows and the same five selected CIK/accession rows as the 2026-09-19 and 2026-09-24 receipts. It adds a version; it replaces neither earlier receipt.",
9+
"limitations": [
10+
"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, so no daily index, header bytes or temporal packets are observed here.",
11+
"Unique-accession counts, forms breakdown and the complete compressed source's bytes and gzip validation were measured on 2026-09-19 and are not re-measured by this output, which records only the cohort count and five selected rows.",
12+
"The run used a scratch uv environment (`uv venv --python 3.12`, then `uv pip install edgartools==5.60.0`) and native_edgar.py from a read-only checkout of main, as reported by the recording coordinator; the README recipe's catalyst runtime uses Python 3.13. The environment's 42-package freeze was read from that environment after the request and equals the updated requirements.lock; against the 5.58.0 lock, four versions changed (edgartools 5.58.0 to 5.60.0, filelock 4.0.1 to 4.0.10, markupsafe 3.0.3 to 3.0.4, soupsieve 2.9.2 to 2.10) and no package was added or removed.",
13+
"The declared contact was supplied by the operator at run time for this run only; the private output and its run log were checked and contain no email address, host path or contact text. The output's unsalted SHA-256 of the contact is withheld from the committed copy, because a guessed contact could be confirmed against it.",
14+
"Successful access does not establish historical availability, as-known data or a strategy result; 2020 filing dates do not imply this runtime observed the filings then.",
15+
"Not a host_receipts.py receipt: that recorder executes its own commands, so it cannot import an earlier output. The catalog's data-edgartools selection moves to 5.60.0 on this evidence together with the NativeStack2604 runtime pin; no trading gate changes because of this file."
16+
],
17+
"recorded_at_utc": "2026-10-04T22:32:40Z",
18+
"relation_to_earlier": {
19+
"earlier_receipt": "blueprints/us-equities/catalyst-provenance/new-host-native-network-20260924.json",
20+
"earlier_receipt_id": "native-sec-new-host-20260924",
21+
"replaces_earlier": false,
22+
"same_cohort_count": true,
23+
"same_five_selected_cik_accessions": true,
24+
"selected": [
25+
"12208-0001193125-20-059087",
26+
"13239-0000013239-20-000002",
27+
"16918-0000016918-20-000035",
28+
"18349-0000018349-20-000014",
29+
"2186-0001654954-20-002156"
30+
]
31+
},
32+
"host": {
33+
"host_class": "WSL2 Threadripper workstation (Linux x86_64 under Windows)",
34+
"platform_id": "linux-wsl2-x86_64",
35+
"new_host_for_this_component": false,
36+
"note": "The same workstation as the 2026-09-24 receipt, in its NativeStack distribution, not NativeStack2604."
37+
},
38+
"native_upstream": {
39+
"package": "edgartools",
40+
"version": "5.60.0",
41+
"source_pin": "1e7a61b3a142dbf5d19bc82444f85239c1786348",
42+
"release": "https://github.com/dgunning/edgartools/releases/tag/v5.60.0",
43+
"pypi_wheel_sha256": "4db917f3833f6b105fe78d22639172410c800ad6da260432884d86b53b88439b",
44+
"runtime": "scratch CPython 3.12.3 uv environment; uv pip freeze (42 packages) equals blueprints/us-equities/catalyst-provenance/requirements.lock as updated with this receipt",
45+
"requirements_lock_sha256": "8249d798431f0499970b68a34690060f48c50a2fef98322b4fb1706f30eb5a8c",
46+
"native_edgar_py_sha256_at_recording": "72af6528dad542842f63fc3c765c3a3c21867d36942126f69f3f03c298983df7",
47+
"api": "get_filings(2020, 1, form='8-K', amendments=True, filing_date='2020-03-02')",
48+
"status": "complete",
49+
"mode": "native_network",
50+
"http_observations": [
51+
{
52+
"method": "GET",
53+
"status": 200,
54+
"url": "https://www.sec.gov/Archives/edgar/full-index/2020/QTR1/form.gz"
55+
}
56+
],
57+
"automatic_retries": 0,
58+
"cohort_rows": 371,
59+
"selected_context_rows": 5,
60+
"context_truncated": false,
61+
"started_at_utc": "2026-10-04T22:29:40.417432Z",
62+
"finished_at_utc": "2026-10-04T22:29:42.321533Z",
63+
"ci_at_tag": {
64+
"release_day_push_runs": [
65+
"https://github.com/dgunning/edgartools/actions/runs/37032606429 (Build and Test, success)",
66+
"https://github.com/dgunning/edgartools/actions/runs/37032606490 (Regression Tests, success)"
67+
],
68+
"scheduled_run_2026_10_03": "https://github.com/dgunning/edgartools/actions/runs/37122012086 failed on the same commit: the two clock-dependent cassette tests in tests/issues/regression/test_issue_893_ttm_staleness.py (TTM revenue staleness), in all three jobs",
69+
"upstream_fix": "test-only commits 9ea5def31b and 156c45b327 pin the clock in that test file; the scheduled run on main 237e866a80 succeeded on 2026-10-04"
70+
}
71+
},
72+
"evidence_class": "native_proven",
73+
"not_run": [
74+
"catalyst.py acquire / packet",
75+
"any SEC request beyond the one recorded GET",
76+
"host_receipts.py record / review",
77+
"the NativeStack2604 runtime's install and offline acceptance (a separate re-run)"
78+
],
79+
"output": {
80+
"private_original": "<private>/sec-5600/native-network-5600.json",
81+
"private_original_mode": "0600",
82+
"private_content_check": "read in full before copying: no email address, host path or contact text; the only identity-derived field is identity_sha256",
83+
"withheld_fields": [
84+
"identity_sha256"
85+
],
86+
"committed_copy_sha256": "e87326142c10bbf17ffbbd7854706de338b42c11f53fcab0824e805ee434aa09",
87+
"committed_copy_note": "native_output below is the private output with identity_sha256 removed, serialized as native_edgar.py writes it (catalyst.py json_bytes: indent 2, sorted keys, trailing newline); committed_copy_sha256 is over that serialization; 2026-10-05: committed_copy_sha256 was recomputed on 2026-10-05 because the earlier value, c8bca5515b2c7e7e8c966a7ec6aa2e26af89ab293c870c6e3acc74bb8346dcba, was taken over the serialization without the trailing newline",
88+
"native_output": {
89+
"automatic_retries": 0,
90+
"cohort_count": 371,
91+
"day": "2020-03-02",
92+
"edgartools": "5.60.0",
93+
"finished_at": "2026-10-04T22:29:42.321533Z",
94+
"first_observed_at": "2026-10-04T22:29:42.317488Z",
95+
"forms": [
96+
"8-K",
97+
"8-K/A"
98+
],
99+
"historical_point_in_time": false,
100+
"http_observations": [
101+
{
102+
"method": "GET",
103+
"status": 200,
104+
"url": "https://www.sec.gov/Archives/edgar/full-index/2020/QTR1/form.gz"
105+
}
106+
],
107+
"method": "get_filings(2020, 1, form='8-K', amendments=True, filing_date='2020-03-02')",
108+
"mode": "native_network",
109+
"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",
110+
"native_context_truncated": false,
111+
"omitted_empty_proxy_variables": [],
112+
"schema_version": 1,
113+
"selected": [
114+
{
115+
"accession_number": "0001654954-20-002156",
116+
"cik": 2186,
117+
"company": "BK Technologies Corp",
118+
"filing_date": "2020-03-02T00:00:00.000",
119+
"form": "8-K"
120+
},
121+
{
122+
"accession_number": "0001193125-20-059087",
123+
"cik": 12208,
124+
"company": "BIO-RAD LABORATORIES, INC.",
125+
"filing_date": "2020-03-02T00:00:00.000",
126+
"form": "8-K"
127+
},
128+
{
129+
"accession_number": "0000013239-20-000002",
130+
"cik": 13239,
131+
"company": "HEXION INC.",
132+
"filing_date": "2020-03-02T00:00:00.000",
133+
"form": "8-K"
134+
},
135+
{
136+
"accession_number": "0000016918-20-000035",
137+
"cik": 16918,
138+
"company": "CONSTELLATION BRANDS, INC.",
139+
"filing_date": "2020-03-02T00:00:00.000",
140+
"form": "8-K"
141+
},
142+
{
143+
"accession_number": "0000018349-20-000014",
144+
"cik": 18349,
145+
"company": "SYNOVUS FINANCIAL CORP",
146+
"filing_date": "2020-03-02T00:00:00.000",
147+
"form": "8-K"
148+
}
149+
],
150+
"started_at": "2026-10-04T22:29:40.417432Z",
151+
"status": "complete"
152+
},
153+
"private_original_note": "2026-10-05: The private original's sha256 and byte count were withdrawn from this receipt on 2026-10-05 after an earlier pushed commit of this PR had carried them; with every other field committed, they would let a guessed contact be confirmed exactly as the withheld identity_sha256 would."
154+
}
155+
}

‎blueprints/us-equities/catalyst-provenance/requirements.lock‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ annotated-types==0.8.0
33
anyio==4.15.1
44
beautifulsoup4==4.15.0
55
certifi==2026.7.22
6-
edgartools==5.58.0
7-
filelock==4.0.1
6+
edgartools==5.60.0
7+
filelock==4.0.10
88
h11==0.16.0
99
httpcore==1.0.9
1010
httpx==0.28.1
@@ -14,7 +14,7 @@ idna==3.20
1414
jinja2==3.1.6
1515
lxml==6.1.3
1616
markdown-it-py==4.2.0
17-
markupsafe==3.0.3
17+
markupsafe==3.0.4
1818
mdurl==0.1.2
1919
nest-asyncio==1.6.0
2020
numpy==2.5.3
@@ -30,7 +30,7 @@ rank-bm25==0.2.2
3030
rapidfuzz==3.14.6
3131
rich==15.0.0
3232
six==1.17.0
33-
soupsieve==2.9.2
33+
soupsieve==2.10
3434
stamina==26.1.0
3535
tabulate==0.10.0
3636
tenacity==9.1.4

‎blueprints/us-equities/lifecycle-sample/README.md‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,12 @@ keeps its unknown origin; the Roundhill document does not resolve it.
4747

4848
## Native operations and the project bridge
4949

50-
`sample.py` is a small project adapter, not an upstream CLI. EdgarTools 5.58.0
50+
`sample.py` is a small project adapter, not an upstream CLI. Its current pin is
51+
EdgarTools 5.60.0, following the October 4
52+
[SEC index acceptance](../catalyst-provenance/native-network-edgartools-5600-20261004.json).
53+
The recorded lifecycle execution used 5.58.0; its receipt and parser fingerprints
54+
remain unchanged. New qualification uses new outputs and external hashes, while
55+
reproducing that historical native parse requires its original parser. The SDK
5156
executes `FilingSGML.from_text`, `get_document_by_sequence("1")` and
5257
`HTMLParser().parse(...).to_markdown()` locally. It never constructs an entity or
5358
filing downloader. The four installed source files are fingerprinted before

0 commit comments

Comments
 (0)