Replace address-only trust and pushed peer state with installation identities, SPKI-pinned QUIC, candidate-only discovery, and bounded responder-owned protocol-8 pulls. The runtime now owns each network generation and all admitted work through shutdown. Add exact bundled content identities, reproducible manifest publishing, capability-confined downloads, streaming BLAKE3 verification, quarantine and retry, and crash-recoverable download and install transactions. Ship generated fixture catalogs and fail closed when production manifests are absent. The Tauri backend exposes durable sharing policy, redacted identity state, and attempt-keyed transfer snapshots. Frontend consumption follows in the next commit. Repository-wide test certificates and protocol-7 paths are removed. BREAKING CHANGE: peers must use protocol 8 and exact catalog content artifacts; protocol-7 frames and shared-certificate identities are no longer accepted. Test Plan: - `just test` -- passed on the completed stack (708 workspace tests) - `just clippy` -- passed on the completed stack - `just build` -- passed with fixture catalogs on the completed stack - `just catalog-check-production` -- failed closed because the external production manifest corpus is absent - `git diff --cached --check` -- passed
90 lines
2.3 KiB
JSON
90 lines
2.3 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"game_id": "css",
|
|
"game_version": "20240623",
|
|
"chunk_size": 134217728,
|
|
"files": [
|
|
{
|
|
"canonical_path": "css.eti",
|
|
"kind": "file",
|
|
"size": 654,
|
|
"file_blake3": "a5123abeb6b462d0fba6e58516cd2e6a7986eb18bd9084134c07c8422552bccd",
|
|
"chunk_blake3": [
|
|
"a5123abeb6b462d0fba6e58516cd2e6a7986eb18bd9084134c07c8422552bccd"
|
|
]
|
|
},
|
|
{
|
|
"canonical_path": "version.ini",
|
|
"kind": "file",
|
|
"size": 8,
|
|
"file_blake3": "6568056191954d307f80dcf71bdb0052a6873a770098141d34edd801bcaf2194",
|
|
"chunk_blake3": [
|
|
"6568056191954d307f80dcf71bdb0052a6873a770098141d34edd801bcaf2194"
|
|
]
|
|
}
|
|
],
|
|
"streamed_install_files": [
|
|
{
|
|
"canonical_path": "engine",
|
|
"kind": "directory",
|
|
"size": 0,
|
|
"file_blake3": null
|
|
},
|
|
{
|
|
"canonical_path": "engine/bin",
|
|
"kind": "directory",
|
|
"size": 0,
|
|
"file_blake3": null
|
|
},
|
|
{
|
|
"canonical_path": "engine/bin/win64",
|
|
"kind": "directory",
|
|
"size": 0,
|
|
"file_blake3": null
|
|
},
|
|
{
|
|
"canonical_path": "engine/bin/win64/steam_settings",
|
|
"kind": "directory",
|
|
"size": 0,
|
|
"file_blake3": null
|
|
},
|
|
{
|
|
"canonical_path": "engine/bin/win64/steam_settings/SmartSteamEmu.ini",
|
|
"kind": "file",
|
|
"size": 71,
|
|
"file_blake3": "6b2e288b261c0d2464f6f422cc1038b4c49de58daf89dcc758481adfd99dc026"
|
|
},
|
|
{
|
|
"canonical_path": "profiles",
|
|
"kind": "directory",
|
|
"size": 0,
|
|
"file_blake3": null
|
|
},
|
|
{
|
|
"canonical_path": "profiles/local",
|
|
"kind": "directory",
|
|
"size": 0,
|
|
"file_blake3": null
|
|
},
|
|
{
|
|
"canonical_path": "profiles/local/account_name.txt",
|
|
"kind": "file",
|
|
"size": 11,
|
|
"file_blake3": "626d0787808ca0087e3d959495e57e41d15c7fff51113f6627aa908825c29830"
|
|
},
|
|
{
|
|
"canonical_path": "profiles/local/language.txt",
|
|
"kind": "file",
|
|
"size": 7,
|
|
"file_blake3": "3e59c7a7502a0a63099171b709c5eed0191275c51d83de063d4cac191bac4813"
|
|
},
|
|
{
|
|
"canonical_path": "readme.txt",
|
|
"kind": "file",
|
|
"size": 17,
|
|
"file_blake3": "815192d90dcdecf7dff970c24ae3b20b18351d75da2aba226ba6f6e0bac2c7b6"
|
|
}
|
|
],
|
|
"content_id": "9d8a0aa232c27023b41491fa0218abd0592a3e0b3e5b5168b337a608e3cf8507"
|
|
}
|