diff --git a/README.md b/README.md index b8ee404..26fb1c3 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,9 @@ A local, file-based detection workflow lab for reviewer-verifiable telemetry and detection demos. -Current focus: v1 reviewer contract stabilization for the five-demo matrix. v1.1 is scoped as an Operator Reproduction Release, not another demo expansion. +Current focus: v1 reviewer contract stabilization for the five-demo matrix. v1.1 is an Operator Reproduction Release, not another demo expansion. -Latest tagged release: [v1.0 — reviewer contract release](https://github.com/stacknil/telemetry-lab/releases/tag/v1.0). +Latest tagged release: [v1.1 — operator reproduction release](https://github.com/stacknil/telemetry-lab/releases/tag/v1.1). ## Reviewer Start @@ -14,7 +14,7 @@ Latest tagged release: [v1.0 — reviewer contract release](https://github.com/s - [`docs/reviewer-path.md`](docs/reviewer-path.md): choose the right demo by review question - [`docs/reviewer-pack.md`](docs/reviewer-pack.md): demo matrix, artifact contract, and v1 readiness gate - [`docs/operator-reproduction.md`](docs/operator-reproduction.md): shortest local path from clone to verifying all five demos -- [`docs/release-v1.1.md`](docs/release-v1.1.md): draft v1.1 operator reproduction and issue triage release notes +- [`docs/release-v1.1.md`](docs/release-v1.1.md): v1.1 operator reproduction and issue triage release notes - [`docs/v1-contract-freeze.md`](docs/v1-contract-freeze.md): v1.0 five-demo contract freeze, release status, and contract scope - [`docs/v1-readiness-gate.md`](docs/v1-readiness-gate.md): fixed inputs, fixed outputs, schema validation, artifact regeneration, and test pass requirements - [`docs/release-v1.0.md`](docs/release-v1.0.md): v1.0 reviewer-contract release notes and explicit non-SIEM boundary @@ -189,7 +189,7 @@ Cooldown behavior: - [`demos/cloud-iam-change-investigation-demo/README.md`](demos/cloud-iam-change-investigation-demo/README.md) explains the synthetic CloudTrail-like IAM investigation demo and its committed artifacts - [`docs/README.md`](docs/README.md) indexes current reviewer docs, supporting design notes, and historical release evidence - [`docs/operator-reproduction.md`](docs/operator-reproduction.md) gives the shortest local path from clone to running the five demos, artifact regeneration, schema tests, and full tests -- [`docs/release-v1.1.md`](docs/release-v1.1.md) drafts the v1.1 operator reproduction and issue triage release notes +- [`docs/release-v1.1.md`](docs/release-v1.1.md) records the v1.1 operator reproduction and issue triage release - [`docs/reviewer-pack.md`](docs/reviewer-pack.md) is the top-level no-guessing reviewer pack and artifact naming contract - [`docs/v1-contract-freeze.md`](docs/v1-contract-freeze.md) defines the v1.0 five-demo contract freeze gate - [`docs/v1-readiness-gate.md`](docs/v1-readiness-gate.md) defines the fixed-input, fixed-output, schema-validation, artifact-regeneration, and test-pass readiness gate diff --git a/docs/README.md b/docs/README.md index 7d29f90..51f2d40 100644 --- a/docs/README.md +++ b/docs/README.md @@ -11,7 +11,7 @@ This directory separates the current reviewer route from supporting design notes - [`v1-contract-freeze.md`](v1-contract-freeze.md): v1.0 five-demo contract freeze, release status, and contract scope - [`v1-readiness-gate.md`](v1-readiness-gate.md): fixed inputs, fixed outputs, schema validation, artifact regeneration, and test pass requirements - [`release-v1.0.md`](release-v1.0.md): v1.0 reviewer-contract release notes with the explicit non-SIEM boundary -- [`release-v1.1.md`](release-v1.1.md): draft v1.1 operator reproduction and issue triage release notes +- [`release-v1.1.md`](release-v1.1.md): v1.1 operator reproduction and issue triage release notes - [`v0.6-to-v1-artifact-diff.md`](v0.6-to-v1-artifact-diff.md): additive artifact contract and compatibility diff from the fourth demo to the fifth - [`evidence-pipeline-contract.md`](evidence-pipeline-contract.md): JSON/JSONL schema contracts for reviewer-facing evidence artifacts - [`reviewer-artifact-diff.md`](reviewer-artifact-diff.md): release diff contract for reviewer-facing artifact changes diff --git a/docs/release-v1.1.md b/docs/release-v1.1.md index 74eb0fd..aafc591 100644 --- a/docs/release-v1.1.md +++ b/docs/release-v1.1.md @@ -1,9 +1,8 @@ -# v1.1 Operator Reproduction Release Notes (Draft) +# v1.1 Operator Reproduction Release Notes Theme: operator reproduction and issue triage, no demo expansion. -Release status: draft until a `v1.1` tag or GitHub release is explicitly -published. +Release status: published as tag `v1.1`. ## Scope @@ -51,17 +50,31 @@ or private data. ## Validation Snapshot -Refresh this snapshot from the final release commit before publishing v1.1: +The final release candidate was verified from clean Windows and Linux clones: -```bash -python scripts/check_release_contract.py -``` +| Environment | Python | Artifact gate | Schema tests | Full tests | +| --- | --- | --- | --- | --- | +| Windows | 3.14.3 | 23 committed artifacts matched; 6 visual snapshots regenerated as smoke checks | 3 passed | 182 passed | +| Linux (Ubuntu) | 3.12.3 | 23 committed artifacts matched; 6 visual snapshots regenerated as smoke checks | 3 passed | 182 passed | + +The normalized SHA-256 manifests for all 30 tracked artifact paths were +identical across the two clones. Text artifacts were normalized from CRLF to +LF before hashing; binary artifacts were hashed byte-for-byte. + +## Artifact Diff + +`no-artifact-change`: v1.1 does not change committed reviewer-facing artifact +content, field meaning, schemas, or filenames. It adds operator reproduction, +release-gate, and issue-triage surfaces around the frozen v1.0 artifact +contract. -Expected gate sequence: +## v1.2 Blocker -- artifact regeneration -- schema validation -- full test suite +Package identity mismatch must be resolved before v1.2: the repository and +release identity is `telemetry-lab` / `v1.1`, while `pyproject.toml` still +declares `telemetry-window-demo==0.1.0`. Resolve the project name and version as +one coordinated metadata change before a v1.2 tag or any package publication. +No package registry publication is part of v1.1. ## Boundaries diff --git a/docs/roadmap.md b/docs/roadmap.md index abf0340..16b22ff 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -23,7 +23,7 @@ Recently added: - [`docs/reviewer-artifact-diff.md`](reviewer-artifact-diff.md) defines the release diff contract for reviewer-facing artifact changes. - [`docs/v0.6-to-v1-artifact-diff.md`](v0.6-to-v1-artifact-diff.md) records the additive fourth-to-fifth-demo artifact contract. - [`docs/operator-reproduction.md`](operator-reproduction.md) records the shortest clone-to-five-demo-verification path. -- [`docs/release-v1.1.md`](release-v1.1.md) drafts the operator reproduction and issue triage release notes. +- [`docs/release-v1.1.md`](release-v1.1.md) records the operator reproduction and issue triage release. - `scripts/check_release_contract.py` wraps artifact regeneration, schema validation, and the full test suite. ## v1.1 Operator Reproduction Release @@ -38,6 +38,12 @@ Deliverable focus: 4. Provide one reviewer-friendly release contract gate command. 5. Keep README verification commands copy/paste runnable. +## v1.2 Blocker + +- Resolve the package identity mismatch between the repository/release name + (`telemetry-lab` / `v1.1`) and the current `pyproject.toml` metadata + (`telemetry-window-demo==0.1.0`) before tagging v1.2. + ## v1 Reviewer Contract Stabilization 1. Stabilize the demo matrix. diff --git a/docs/v1-contract-freeze.md b/docs/v1-contract-freeze.md index ac884d6..84542c8 100644 --- a/docs/v1-contract-freeze.md +++ b/docs/v1-contract-freeze.md @@ -8,11 +8,12 @@ stable contract surface. ## Release Status -The latest tagged release is `v1.0`, published as a reviewer-contract release -for the five-demo matrix. It includes the synthetic CloudTrail-like IAM -investigation demo, the v1 reviewer contract stabilization docs, schema -coverage for reviewer-facing JSON and JSONL artifacts, and the artifact -regeneration gate. +`v1.0` remains the reviewer-contract baseline for the five-demo matrix. The +latest tagged release is `v1.1`, which adds operator reproduction and issue +triage around that frozen contract without changing the demo or artifact +matrix. The baseline includes the synthetic CloudTrail-like IAM investigation +demo, schema coverage for reviewer-facing JSON and JSONL artifacts, and the +artifact regeneration gate. `v0.6.0` remains the fourth-demo compatibility baseline. It was published as `v0.6.0 - fourth demo and config-change investigation`. diff --git a/tests/test_reviewer_docs.py b/tests/test_reviewer_docs.py index 42700e8..80c2bc1 100644 --- a/tests/test_reviewer_docs.py +++ b/tests/test_reviewer_docs.py @@ -141,7 +141,7 @@ def test_readme_links_reviewer_path_and_uses_lab_framing() -> None: assert "[`docs/v1-contract-freeze.md`](docs/v1-contract-freeze.md)" in readme assert "[`docs/v1-readiness-gate.md`](docs/v1-readiness-gate.md)" in readme assert "[`docs/architecture.md`](docs/architecture.md)" in readme - assert "Latest tagged release: [v1.0" in readme + assert "Latest tagged release: [v1.1" in readme assert "portfolio prototype" not in normalized assert "mvp only" not in normalized @@ -348,7 +348,7 @@ def test_v1_contract_freeze_documents_release_drift_and_gate() -> None: assert "# v1.0 Five-Demo Contract Freeze" in freeze_doc assert "## Release Status" in freeze_doc - assert "latest tagged release is `v1.0`" in freeze_doc + assert "latest tagged release is `v1.1`" in freeze_doc assert "`v0.6.0` remains the fourth-demo compatibility baseline" in freeze_doc assert "No new demo should be added for v1.0" in freeze_doc assert "python scripts/regenerate_artifacts.py --check" in freeze_doc @@ -601,11 +601,17 @@ def test_v11_release_note_keeps_operator_reproduction_scope() -> None: readme = _read_repo_file("README.md") roadmap = _read_repo_file("docs/roadmap.md") - assert "# v1.1 Operator Reproduction Release Notes (Draft)" in release_note + assert "# v1.1 Operator Reproduction Release Notes" in release_note assert "Theme: operator reproduction and issue triage, no demo expansion." in release_note - assert "Release status: draft" in release_note + assert "Release status: published as tag `v1.1`." in release_note assert "python scripts/check_release_contract.py" in release_note assert "documentation reproduction questions" in release_note + assert "23 committed artifacts matched" in release_note + assert "182 passed" in release_note + assert "`no-artifact-change`" in release_note + assert "Package identity mismatch must be resolved before v1.2" in release_note + assert "telemetry-window-demo==0.1.0" in release_note + assert "package identity mismatch" in roadmap for demo_name in [ "telemetry-window-demo",