diff --git a/crates/folderbase-cli/tests/transform_fixture.rs b/crates/folderbase-cli/tests/transform_fixture.rs index 6719f8a..b4953cb 100644 --- a/crates/folderbase-cli/tests/transform_fixture.rs +++ b/crates/folderbase-cli/tests/transform_fixture.rs @@ -555,7 +555,6 @@ fn rollback_is_idempotent_after_restart() { assert!(root.path().join("README.md").exists()); } -const LIVE_OKADA_PATH: &str = "/Users/jerel/Work/Chalk/Okada"; const GOLDEN_BOUNDARIES: &[&str] = &[ "ChalkAgents-Prosperna-Client-Engagement", "Client-Shared", @@ -593,14 +592,14 @@ fn committed_golden_expectations() -> serde_json::Value { } fn guarded_fixture_source(source: &Path) -> Result { - let live = Path::new(LIVE_OKADA_PATH); - if source == live || source.starts_with(live) { - return Err("live Okada path is forbidden in the golden test harness".to_owned()); + let allowed = committed_golden_fixture(); + if source != allowed { + return Err("golden tests accept only the committed synthetic fixture".to_owned()); } let canonical = source .canonicalize() .map_err(|error| format!("fixture source is unavailable: {error}"))?; - if canonical != committed_golden_fixture() { + if canonical != allowed { return Err(format!( "golden tests accept only the committed synthetic fixture: {}", canonical.display() @@ -636,7 +635,7 @@ fn copy_tree(source: &Path, destination: &Path) { fn golden_fixture() -> GoldenFixture { let source = guarded_fixture_source(&committed_golden_fixture()).unwrap(); let temp = tempfile::tempdir().expect("temporary golden fixture"); - let root = temp.path().join("Okada-Account"); + let root = temp.path().join("Project-2-Account"); copy_tree(&source, &root); for (source, boundary) in [ ( @@ -788,7 +787,7 @@ fn source_snapshot(root: &Path) -> Vec<(PathBuf, Vec)> { } #[test] -fn okada_shaped_fixture_produces_expected_questions_without_writes() { +fn project_2_fixture_produces_expected_questions_without_writes() { let fixture = golden_fixture(); let before = source_snapshot(&fixture.root); let analysis = analyze(&fixture.root); @@ -823,7 +822,29 @@ fn okada_shaped_fixture_produces_expected_questions_without_writes() { } #[test] -fn okada_shaped_fixture_groups_every_assignment_into_twenty_bounded_questions() { +fn project_2_expectations_preserve_account_topology_and_provenance() { + let expected = committed_golden_expectations(); + + assert_eq!( + expected["provenance_labels"], + serde_json::json!(["ChalkAgents", "Prosperna", "Project 2"]) + ); + assert_eq!( + expected["expected_topology"]["workspace"], + "Project 2 Account Workspace" + ); + assert_eq!( + expected["expected_topology"]["folderbases"][0], + "Project 2 Account Folderbase" + ); + assert_eq!( + expected["expected_topology"]["permission_inheritance"], + false + ); +} + +#[test] +fn project_2_fixture_groups_every_assignment_into_twenty_bounded_questions() { let fixture = golden_fixture(); let analysis = analyze(&fixture.root); let questions = analysis["questions"].as_array().unwrap(); @@ -1282,14 +1303,17 @@ fn full_rollback_restores_original_fixture_tree() { } #[test] -fn test_harness_rejects_live_okada_path() { - let live = Path::new(LIVE_OKADA_PATH); - let error = guarded_fixture_source(live).unwrap_err(); - assert!(error.contains("live Okada path is forbidden")); +fn test_harness_rejects_every_external_path_before_canonicalizing_it() { + let external = Path::new("/private/external/project-2-account"); + let error = guarded_fixture_source(external).unwrap_err(); + assert_eq!( + error, + "golden tests accept only the committed synthetic fixture" + ); } #[test] -fn okada_shaped_folder_to_folderbase_journey_preserves_restart_and_agent_entry_contract() { +fn project_2_folder_to_folderbase_journey_preserves_restart_and_agent_entry_contract() { let fixture = golden_fixture(); let source_before = source_snapshot(&fixture.root); let started = Instant::now(); diff --git a/crates/folderbase-core/tests/root_attestation.rs b/crates/folderbase-core/tests/root_attestation.rs index c7176e0..d9ed8a8 100644 --- a/crates/folderbase-core/tests/root_attestation.rs +++ b/crates/folderbase-core/tests/root_attestation.rs @@ -663,7 +663,7 @@ fn exact_maximum_manifest_is_accepted_and_hashed_as_raw_bytes() { #[test] fn nested_roots_attest_independently_and_never_fall_back_to_an_ancestor() { let parent = root_with_manifest(MANIFEST); - let valid_child = parent.path().join("Clients/Prosperna/Okada"); + let valid_child = parent.path().join("Clients/Prosperna/Project 2"); write_root(&valid_child, MANIFEST); let parent_receipt = attest_folderbase_root(parent.path()).expect("valid parent"); diff --git a/crates/folderbase-core/tests/templates.rs b/crates/folderbase-core/tests/templates.rs index ea3c2b6..c117003 100644 --- a/crates/folderbase-core/tests/templates.rs +++ b/crates/folderbase-core/tests/templates.rs @@ -71,12 +71,12 @@ fn each_kind_renders_distinct_useful_folderbase_entry() { "0.2.0", "customer", [ - ("folderbase_name", "Okada Customer Context"), - ("purpose", "Understand and serve the Okada account."), + ("folderbase_name", "Project 2 Customer Context"), + ("purpose", "Understand and serve the Project 2 account."), ("current_state", "Several projects share account context."), ("next_action", "Consolidate the approved account record."), ], - ["# Okada Customer Context", "Account/", "customer"], + ["# Project 2 Customer Context", "Account/", "customer"], ), ( "folderbase.temporary", diff --git a/docs/verification/v0.5.0-rc.1-core-release-candidate.md b/docs/verification/v0.5.0-rc.1-core-release-candidate.md index f42f9fb..01b19cc 100644 --- a/docs/verification/v0.5.0-rc.1-core-release-candidate.md +++ b/docs/verification/v0.5.0-rc.1-core-release-candidate.md @@ -54,6 +54,15 @@ exactly 152 files, and the exact manifest SHA-256 matched its external sidecar: 09460bfa0732bc471b3fedef173c78a8ecb6f4182b22f762fe8c9b8c2a260278 ``` +After the release-candidate run, the privacy-safe Project 2 fixture amendment +closed an inventory gap by sealing the golden fixture tree and its expectation +artifact alongside the transform test that consumes them. The current +candidate closure is 197 files and its exact manifest SHA-256 is: + +```text +7cb7bf7bca59876037bdd4d38fd8e82c086c865abefc3c37d55d9bad7ce5adad +``` + The package verifier built the extracted 65-file Core package and 10-file CLI package, rejected a deliberately mutated extracted input, ran their tests, and installed the optimized CLI outside the repository. The installed binary diff --git a/fixtures/client-company-2-shaped-unmanaged.expected.json b/fixtures/client-company-2-shaped-unmanaged.expected.json index 42fd0df..d4adf4a 100644 --- a/fixtures/client-company-2-shaped-unmanaged.expected.json +++ b/fixtures/client-company-2-shaped-unmanaged.expected.json @@ -23,12 +23,12 @@ "provenance_labels": [ "ChalkAgents", "Prosperna", - "Okada" + "Project 2" ], "expected_topology": { - "workspace": "Okada Account Workspace", + "workspace": "Project 2 Account Workspace", "folderbases": [ - "Okada Account Folderbase", + "Project 2 Account Folderbase", "ChalkAgents-Prosperna Engagement Folderbase", "Security Remediation Project Folderbase", "Loyalty Revamp Project Folderbase", diff --git a/fixtures/client-company-2-shaped-unmanaged/Account/README.md b/fixtures/client-company-2-shaped-unmanaged/Account/README.md index 385a8fd..3b415f4 100644 --- a/fixtures/client-company-2-shaped-unmanaged/Account/README.md +++ b/fixtures/client-company-2-shaped-unmanaged/Account/README.md @@ -1,4 +1,4 @@ -# Synthetic Okada account context +# Synthetic Project 2 account context This invented account summary says the work is active and spans security, loyalty, support, commercial, and client-facing delivery concerns. diff --git a/fixtures/client-company-2-shaped-unmanaged/Engagement-Provenance/README.md b/fixtures/client-company-2-shaped-unmanaged/Engagement-Provenance/README.md index 92021bd..26c7f59 100644 --- a/fixtures/client-company-2-shaped-unmanaged/Engagement-Provenance/README.md +++ b/fixtures/client-company-2-shaped-unmanaged/Engagement-Provenance/README.md @@ -1,7 +1,7 @@ # Synthetic ChalkAgents–Prosperna engagement provenance This invented record explains that ChalkAgents performs the represented work -through a Prosperna engagement for the Okada account. +through a Prosperna engagement for the Project 2 account. It intentionally contains no contract terms, contacts, credentials, invoices, or customer data. The relationship must never be interpreted as inherited @@ -21,7 +21,7 @@ human or agent access. "folderbases": { "chalkagents": "folderbase_019f9c00-0000-7000-8000-000000000001", "prosperna": "folderbase_019f9c00-0000-7000-8000-000000000002", - "okada": "folderbase_019f9c00-0000-7000-8000-000000000003" + "project_2": "folderbase_019f9c00-0000-7000-8000-000000000003" }, "workspace_id": "workspace_019f9c00-0000-7000-8000-000000000004", "shared_object_id": "obj_019f9c00-0000-7000-8000-000000000005", @@ -68,7 +68,7 @@ human or agent access. "relationship": "filesystem_parent", "object": { "type": "folder", - "id": "Prosperna/Okada" + "id": "Prosperna/Project 2" } }, { diff --git a/fixtures/client-company-2-shaped-unmanaged/README.md b/fixtures/client-company-2-shaped-unmanaged/README.md index 10f1a58..3ba48a9 100644 --- a/fixtures/client-company-2-shaped-unmanaged/README.md +++ b/fixtures/client-company-2-shaped-unmanaged/README.md @@ -1,9 +1,9 @@ -# Safe Okada-shaped unmanaged fixture +# Safe Project 2 unmanaged fixture This is a deliberately small, invented folder tree for deterministic `folderbase inspect`, transform-planning, and migration tests. It approximates -the approved ChalkAgents → Prosperna engagement → Okada account shape without -including any live Okada, Prosperna, ChalkAgents, or personal data. +the approved ChalkAgents → Prosperna engagement → Project 2 account shape without +including any live Project 2, Prosperna, ChalkAgents, or personal data. Every payload is invented. Files with document, database, archive, image, or video extensions are tiny labeled placeholders rather than real customer @@ -21,8 +21,8 @@ shareable folderbase. The fixture should eventually produce a reviewable proposal shaped like: ```text -Okada Account Workspace -├── Okada Account Folderbase +Project 2 Account Workspace +├── Project 2 Account Folderbase ├── ChalkAgents–Prosperna Engagement Folderbase ├── Security Remediation Project Folderbase ├── Loyalty Revamp Project Folderbase @@ -79,7 +79,7 @@ expectation artifact is not itself part of the inspected source tree. ## Golden-journey normalization The CLI golden test accepts only this exact committed fixture. It copies the -tree to an isolated temporary `Okada-Account` folder, then gives three existing +tree to an isolated temporary `Project-2-Account` folder, then gives three existing semantic scopes analyzer-visible boundary names: - `Engagement-Provenance` becomes @@ -91,5 +91,5 @@ semantic scopes analyzer-visible boundary names: This normalization changes no source bytes and does not touch this committed fixture. It makes the intended account, engagement, project, commercial, security, and client-shared decisions explicit through the current public CLI -heuristic. The test harness rejects the live Okada path before any filesystem -operation. +heuristic. The test harness lexically rejects every external fixture path before +canonicalizing or reading it. diff --git a/protocol/releases/0.5/folderbase-version-v1.json b/protocol/releases/0.5/folderbase-version-v1.json index fe08a09..38015e2 100644 --- a/protocol/releases/0.5/folderbase-version-v1.json +++ b/protocol/releases/0.5/folderbase-version-v1.json @@ -64,7 +64,7 @@ }, { "path": "crates/folderbase-cli/tests/transform_fixture.rs", - "sha256": "73c1ce100b4da1609ac73b8fa0981e3eb4c3d9ce943422b008710bd188ae4ba8" + "sha256": "f551c9f2cda66871422c4baae4aacb3c2940eed98f937856e9004ca2a9ec2a91" }, { "path": "crates/folderbase-core/Cargo.toml", @@ -312,7 +312,7 @@ }, { "path": "crates/folderbase-core/tests/root_attestation.rs", - "sha256": "b53c33885404531dbd3e0e32138ed03f0a733f2c39b45413b691295b356bd5f7" + "sha256": "02ae9f2dd80a1c4f1ba987cd05b84e7845d5aca7e343251025d45d38d3df95c5" }, { "path": "crates/folderbase-core/tests/sharing.rs", @@ -332,7 +332,7 @@ }, { "path": "crates/folderbase-core/tests/templates.rs", - "sha256": "233d0e2db93f460e285a658bb667a2b58e62c11be65dcd0fa3237827ec326c0b" + "sha256": "2c0b4a8025a209655dba920b9d7561ba6e6c16a66582a6fa7fe45a2360f6ae52" }, { "path": "crates/folderbase-core/tests/transfer_manifest_conformance.rs", @@ -378,6 +378,186 @@ "path": "docs/template-protocol.md", "sha256": "9de706b5208d1bec5563fe34eac17b218a9617e61098121995aa8d612dfb82b8" }, + { + "path": "fixtures/client-company-2-shaped-unmanaged.expected.json", + "sha256": "5f99bec6d300a1b01d5100a7556a5468375ba5d3aa199cc1a3d9525f812d370c" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/AGENTS.md", + "sha256": "76c480c4ab249529dd896085ae69fea88c8c36bb06e96f5d9ad50a05feb27a45" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Account/README.md", + "sha256": "bfd0401f2c8ed572f89f1a4d56c3fbb1e3a7b09fde3b4999bf290e4a95d8105a" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Client-Shared/Candidate-Scope.md", + "sha256": "070c1d5cf6562e93ba87e31efd3815b04c5cb558cda1d49355ac2acf9d666c3d" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Client-Shared/Project-Overview.md", + "sha256": "cf50ba7b89032435644bb53e8e69be062d96ed5155e25b932e6c227c0ee9d868" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Commercial-Restricted/Access-Scope.md", + "sha256": "88f4be48dbc006d12c76e0eec3927747d21b8a45204a932d8eb0e859fe14f19c" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Commercial-Restricted/Agreement_Draft_v2.md", + "sha256": "e3923c92cd5b66a49fe2501050d98638e26704098ac764c9e5d59a43107df820" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Commercial-Restricted/Agreement_Final_v4.md", + "sha256": "6a10b4195da57af4568c102e39affa6dd107801f6adf7c8ce335ade8bbc27eda" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Commercial-Restricted/Agreement_Revised_v3.md", + "sha256": "b8b363fa4065f76178241019dd4ae5c38c8719e9f1f2e050eb3a9d6c55b0f837" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Commercial-Restricted/Invoices/Synthetic-Invoice.pdf", + "sha256": "e6df8a14191bffeae112b6e3bdcee34a7e69c9d4bedf1a5c76c2c83c760fa577" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Engagement-Provenance/README.md", + "sha256": "b0af259b0c4a7bf33be206a57ddd6cbfdd1a64af3b762de265d6f4f2406da2bd" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Evidence/Curated/README.md", + "sha256": "609f4fb228f06c898e1886765efa04f5613fb0ae6978f706b1bcc6d7d78d2ea2" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Evidence/Raw/Attachments/remediation-evidence.zip", + "sha256": "24c2b693929b4a516b7eff2da52e27fe0481514e3c2247b91278f62ae9a31de4" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Evidence/Raw/Emails/thread-001.eml", + "sha256": "af345bf6910a6b9c5a27ef64738092944df3df4a5313a0d7280cdb4abd2059b6" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Loyalty-Revamp/Data/loyalty-reference.sqlite", + "sha256": "2d2e45241baf1b8109a076cef639927f03f5632c3b964484edefc13749fb65aa" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Loyalty-Revamp/Proposals/Loyalty_Proposal_Draft_v2.md", + "sha256": "04cfb8bc54adf77ba219c71c19cccd5401df33a929f193e4e689a2b0808fc3b8" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Loyalty-Revamp/Proposals/Loyalty_Proposal_Final_v4.md", + "sha256": "a0bff43fa4b068a30c8af9adfe77e06a317f2196e075043147cd8f4be59ed092" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Loyalty-Revamp/Proposals/Loyalty_Proposal_Revised_v3.md", + "sha256": "196572dc9126a55e0296df82e8d532f1f9b40b3fb4e0bd66356daae867c5c215" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Loyalty-Revamp/README.md", + "sha256": "cf1e625709f6c69c403bef495b642023da436cd4aaa6e12d0378760c352621cf" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Loyalty-Revamp/Reference-App/.gitmodules", + "sha256": "84741f3db144a9a3ab5f61cf00d02a4be88ca2fb189b8932b381321ed8435228" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Loyalty-Revamp/Reference-App/README.md", + "sha256": "23ffb65d7c0e13caab541878cfc9f2645612b8e77ba583ec74260f552b3fa20b" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Loyalty-Revamp/Reference-App/dist/bundle.js", + "sha256": "bfd1950bfe55aa84fbe5d281985299aa7286430785eda0b4cc9b45cae9e659c9" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Loyalty-Revamp/Requirements/CR-SYNTHETIC.md", + "sha256": "61cbc9a8ec9f45dadc67323e5bdc907d82a2b54b5b2361f38e766c0ede25f20a" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/README.md", + "sha256": "9eecbb0dd1e066537f1ada16454081bddfbdb99c21a394936a9d479f589d5ea5" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Reference/Client Company 2-dev/.chalk/README.md", + "sha256": "9b718eaaffc83e9a7d6a46963b313d79479555dfd3f7dffbb059feb1fa3838b2" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Reference/Client Company 2-dev/.gitignore", + "sha256": "fd58fc302f854dc273a81aa53c83ac8dbe73f162ed674dc9b20c3588f86b6d5e" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Reference/Client Company 2-dev/.gitmodules", + "sha256": "1fdb9a1bf3cba92eaf43a645dcf698a88dfdd0147bd321cfea9b30394cf1ac37" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Reference/Client Company 2-dev/README.md", + "sha256": "a5965e66878f86f981496998bcdc4d2055027d381b4b0a6fb126b4e4035c8c82" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Reference/Client Company 2-dev/config/.env.synthetic", + "sha256": "a4ec078b7b5172bcd25ff73a071bb208e17359c5cc98087454834cfbbeb61737" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Reference/Client Company 2-dev/config/api_key.txt", + "sha256": "4fb73f4d17de5e41f9af2d3ef5d6337d57944295c6a931cf17c048f63efae207" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Reference/Client Company 2-dev/mobile/.dart_tool/package_config.json", + "sha256": "c205d562a3b349b59dc744004e6372c81e6bc0293fc5423ed345267b3ec88b4c" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Reference/Media/Architecture-Overview.pdf", + "sha256": "197546e86fed6250563934cccc4693c376951d84557377655f41650c05d815a1" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Reference/Media/Walkthrough-LARGE-PLACEHOLDER.mp4", + "sha256": "f81adaf24403fa834e744b3eacdd2558da34840a8104920d8404030b48914346" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Security-Remediation/Client-Deliverables/Completion-Note.md", + "sha256": "1c373a1dbf7001c35f73b9dea05405824ceccc79e0c1ea0932d2b479df7c50f2" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Security-Remediation/Finding-001.md", + "sha256": "193ae75bb5c70883a0e39b61be5fbc17812845a9d87c1ef32828000220e07f8a" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Security-Remediation/README.md", + "sha256": "8dfec29508c1d54fa5ae34618b29eddb4b92f04f4217c85ec568aebeefaabf60" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Security-Remediation/Tooling/.gitmodules", + "sha256": "b4adcd5b09642c725eb9faca706987639389dbf2dd8cf22adf6a8f9defd4b2d2" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Security-Remediation/Tooling/README.md", + "sha256": "7d2d868634db972844992009d5571d44b2afb30d6e6942f769aca82279fd846b" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Security-Remediation/Tooling/target/debug/tool-output.bin", + "sha256": "ac83f02fff4725c88c3cd62e97ff06ce6e8b7a69a43c2dee2aa94628217e4e5a" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Support-and-Maintenance/README.md", + "sha256": "58d18d1f705fb2b2e426a6a015e8de15e0b8b28847b92005a9e8101a87b44fde" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/Support-and-Maintenance/Reports/Weekly-Status.md", + "sha256": "7ddaff3817fe1d8641eb0b267388c0f1c223a2062e9a914e8acf55e688e440ce" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/dashboard/.next/build-manifest.json", + "sha256": "c205d562a3b349b59dc744004e6372c81e6bc0293fc5423ed345267b3ec88b4c" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/dashboard/node_modules/example-package/package.json", + "sha256": "4e471043c1b83c51c22916a78ea536431368cfc079d6f7ae0c13cebc7b434e42" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/emails/README.md", + "sha256": "e376489899e8b78eecc7aa1a6b5a5d97c66319d333b14e0693ec24afc3965a44" + }, + { + "path": "fixtures/client-company-2-shaped-unmanaged/tmp/render-preview.tmp", + "sha256": "10b947c456a103cea425a59d7b09a61935d9d50c941ea795a5023374b011223f" + }, { "path": "protocol/README.md", "sha256": "ffa9e6d6a6550447b843690debec131e6e6b2a59fcde83f49440c02547ffdbf2" @@ -612,7 +792,7 @@ }, { "path": "scripts/verify-folderbase-version-0.5-distribution.mjs", - "sha256": "0491b41f27a4ca845f54d6ce4d089c61224bfde7d139a3a3ba245ac9281125a0" + "sha256": "c90f575b0a2a853df7caa8d546b752a06ab9018031ea6a3318687e0c8d849d61" } ] } diff --git a/protocol/releases/0.5/folderbase-version-v1.sha256 b/protocol/releases/0.5/folderbase-version-v1.sha256 index 715845a..a802fb3 100644 --- a/protocol/releases/0.5/folderbase-version-v1.sha256 +++ b/protocol/releases/0.5/folderbase-version-v1.sha256 @@ -1 +1 @@ -23ab863a302b65247009b0b81ec45ad91d0820253502f3fe16e6cbaa4376f97b +7cb7bf7bca59876037bdd4d38fd8e82c086c865abefc3c37d55d9bad7ce5adad diff --git a/scripts/verify-folderbase-version-0.5-distribution.mjs b/scripts/verify-folderbase-version-0.5-distribution.mjs index a151491..87bec20 100644 --- a/scripts/verify-folderbase-version-0.5-distribution.mjs +++ b/scripts/verify-folderbase-version-0.5-distribution.mjs @@ -155,9 +155,16 @@ const requiredNonConformanceFiles = [ "scripts/verify-folderbase-version-0.5-digest-vectors.mjs", "scripts/verify-folderbase-version-0.5-distribution.mjs", ]; +const exactGoldenFixtureFiles = [ + "fixtures/client-company-2-shaped-unmanaged.expected.json", + ...walk( + join(repositoryRoot, "fixtures", "client-company-2-shaped-unmanaged"), + ), +].sort(); const expectedPaths = [ ...exactConformanceFiles, ...completeRuntimePackageClosure, + ...exactGoldenFixtureFiles, ...requiredNonConformanceFiles, ]; const uniqueExpectedPaths = [...new Set(expectedPaths)].sort();