Skip to content

Commit 2bd7aba

Browse files
author
Flow Memory Builder
committed
Include dependency inventory in release evidence
1 parent e075314 commit 2bd7aba

4 files changed

Lines changed: 5 additions & 2 deletions

File tree

BUILD_REPORT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ Added:
113113
- `src/flow_memory/storage/migrations.py` and `scripts/verify_storage_schema.py` for schema fingerprints and migration metadata verification.
114114
- `scripts/release_gate.py` now includes storage schema verification.
115115
- `src/flow_memory/release/manifest.py` and `scripts/generate_release_manifest.py` for offline release manifest generation.
116-
- `src/flow_memory/release/evidence.py` and `scripts/export_release_evidence.py` for exporting a hashed release evidence bundle.
116+
- `src/flow_memory/release/evidence.py` and `scripts/export_release_evidence.py` for exporting a hashed release evidence bundle, including dependency inventory.
117117
- `src/flow_memory/release/readiness.py` and `scripts/release_decision.py` for explicit local/testnet/production go-no-go decisions.
118118
- `src/flow_memory/release/dependencies.py` and `scripts/export_dependency_inventory.py` for offline dependency inventory.
119119

docs/PRODUCTION_READINESS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,6 @@ Each release candidate should attach or link:
105105
- Known limitations, including whether funds, mainnet, untrusted execution, or production data are intentionally disabled.
106106
- Release-gate JSON from `scripts/release_gate.py`, including API snapshot, audit replay, Base dry-run, and secret-scan status.
107107
- Release manifest JSON from `scripts/generate_release_manifest.py`, including commit, branch, API snapshot, storage schema, Base dry-run plan, and release-gate status.
108-
- Release evidence bundle from `scripts/export_release_evidence.py`, including `index.json`, release manifest, release gates, API snapshot, storage schema, and Base deployment dry-run.
108+
- Release evidence bundle from `scripts/export_release_evidence.py`, including `index.json`, release manifest, release gates, API snapshot, storage schema, Base deployment dry-run, and dependency inventory.
109109
- Release decision JSON from `scripts/release_decision.py`, with explicit target, classification, blockers, and required evidence.
110110
- Dependency inventory JSON from `scripts/export_dependency_inventory.py`, covering Python optional extras, dashboard package metadata, and Rust helper crate metadata.

src/flow_memory/release/evidence.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from flow_memory.crypto.hashes import content_hash
1212
from flow_memory.release.gates import run_release_gates
1313
from flow_memory.release.manifest import build_release_manifest
14+
from flow_memory.release.dependencies import build_dependency_inventory
1415
from flow_memory.storage.migrations import migration_plan
1516
from flow_memory.web3.deployment_plan import generate_deployment_plan
1617

@@ -36,6 +37,7 @@ def build_evidence_documents(root: str | Path = ".") -> Mapping[str, Mapping[str
3637
"api_snapshot.json": dict(api_snapshot()),
3738
"storage_schema.json": migration_plan().as_record(),
3839
"base_deployment_plan.json": dict(generate_deployment_plan()),
40+
"dependency_inventory.json": build_dependency_inventory(root_path).as_record(),
3941
}
4042

4143

tests/test_release_evidence.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ def test_export_and_verify_release_evidence_bundle(self) -> None:
1717

1818
self.assertEqual(bundle.index["bundle_hash"], verified.index["bundle_hash"])
1919
self.assertIn("release_manifest.json", bundle.index["files"])
20+
self.assertIn("dependency_inventory.json", bundle.index["files"])
2021

2122
def test_verify_release_evidence_detects_tamper(self) -> None:
2223
root = Path(__file__).resolve().parents[1]

0 commit comments

Comments
 (0)