Skip to content
zit Artifact [ffea6238e6]
Login

Artifact [ffea6238e6]

Artifact ffea6238e647e626d3827c06fc5aed2ea22b21dc50adc5323c04425f92a0757a:

Manifest of check-in [ffea6238e6] - commit: decode artifact names of either width, not just sha3-256

hexToDigest required exactly digest_len*2 hex characters. zit init writes the sha3-256 policy, so that looked like the only case -- but import-git opens its destination under git's sha1, naming every check-in in 40 hex. So commit rejected the parent of every imported repository and reported it corrupt on a store zit verify called clean. Issue #24.

Length now comes from the name, as artifact §7.2 allows both widths. pack.zig carried the same copy and would have dropped the primary-parent hint the same way; cmd/sync.zig's callers move to the slice form.

commitParentCorrupt now names which step failed. Collapsing an undecodable name, an absent parent and real damage into one sentence is why verify and commit could disagree with no way to tell which was right.

Reproduced on 12 commits and 40 files -- not scale-dependent, and not submanifest-specific: it fires before the S-card branch, so flat imports failed identically. Regression test commits over an imported sha1 history; mutation-proved by restoring the width check. by dmestas on 2026-08-02 07:14:38.


C commit:\sdecode\sartifact\snames\sof\seither\swidth,\snot\sjust\ssha3-256\n\nhexToDigest\srequired\sexactly\sdigest_len*2\shex\scharacters.\szit\sinit\swrites\nthe\ssha3-256\spolicy,\sso\sthat\slooked\slike\sthe\sonly\scase\s--\sbut\simport-git\nopens\sits\sdestination\sunder\sgit's\ssha1,\snaming\severy\scheck-in\sin\s40\shex.\nSo\scommit\srejected\sthe\sparent\sof\severy\simported\srepository\sand\sreported\nit\scorrupt\son\sa\sstore\szit\sverify\scalled\sclean.\sIssue\s#24.\n\nLength\snow\scomes\sfrom\sthe\sname,\sas\sartifact\s§7.2\sallows\sboth\swidths.\npack.zig\scarried\sthe\ssame\scopy\sand\swould\shave\sdropped\sthe\sprimary-parent\nhint\sthe\ssame\sway;\scmd/sync.zig's\scallers\smove\sto\sthe\sslice\sform.\n\ncommitParentCorrupt\snow\snames\swhich\sstep\sfailed.\sCollapsing\san\nundecodable\sname,\san\sabsent\sparent\sand\sreal\sdamage\sinto\sone\ssentence\sis\nwhy\sverify\sand\scommit\scould\sdisagree\swith\sno\sway\sto\stell\swhich\swas\sright.\n\nReproduced\son\s12\scommits\sand\s40\sfiles\s--\snot\sscale-dependent,\sand\snot\nsubmanifest-specific:\sit\sfires\sbefore\sthe\sS-card\sbranch,\sso\sflat\simports\nfailed\sidentically.\sRegression\stest\scommits\sover\san\simported\ssha1\nhistory;\smutation-proved\sby\srestoring\sthe\swidth\scheck.\n
D 2026-08-02T07:14:38.719
F .fossil-settings/ignore-glob 1e7a8c10ad58e9784eb011bcc04beb837ad043d54285d340040fae68baf34f86
F .github/workflows/ci.yml 757f4e7c6d29e6358dd98a638ab7804ff3460012c02b95f2d3038e2f234b33ee
F LICENSE 702ae7ff835a2a971dae11c5cae039803bf394b77a6d8ec9f18693e449eaaf26
F README.md 67bb1afa5bff033e7ce51ff92e782a8a22a5e64541c219b338147da4b1ad8f47
F build.zig 81c5a04b7dc45670de3ad77072cf5202ae032c77ee40994ec8e88b59d4e44c0f
F build.zig.zon dd3992bfc8da12e09a018c4697e38ddf79d07e225405af448ecca1ebefc3ea0c
F docs/RELEASE-NOTES-0.1.0.md 5ed8b4d35ee23b7990261f8af34f5fa3cc629baf63b0059d9f7bb2d2c48dc802
F docs/RELEASE-NOTES-0.1.1.md 59eea8c487dc1e9190c44c371656e430cd5621031a71c502ecbae96802712857
F docs/RELEASE-NOTES-0.1.2.md 7c968ab247ad1194f9163e625a37452ae72bdc23f3e66e8ea26b39f6e0a52914
F docs/RELEASE-NOTES-0.1.3.md c8f703b8717040f96a9b77ad132bbe309ba4368ead5362739e4d5ef23f2d3286
F docs/rfcs/draft-fossil-artifact-format-00.txt a6d542a5effeb41d0ea1e916058ccdc0a5819787f167ef1ebad7814f5680e7ad
F docs/rfcs/draft-fossil-delta-format-00.txt d8025d6d75322e33887c3334a4b9cc729960028b3c994ed01e5a474e4b388fd2
F docs/rfcs/draft-fossil-repo-state-00.txt b35480166caaf5d2c220086140a1d47034e9b4967689be8f4cd8779bbdbbc3da
F docs/rfcs/draft-fossil-submanifests-00.txt eaef2e2e36f4fab96ec4ba9654a8e7c02317086918f6e32e45fd62897dfd48e9
F docs/rfcs/draft-fossil-sync-protocol-00.txt 153d31ec11ff6636793514df711389883d5dd3111b97d3da295a30308fb400b4
F scripts/mirror-export.sh cc1130129e3c320cb9c1c5a05f505e45ece23d6bb3e0228da8e7ffe97bd5612b x
F scripts/soak.README 3a2f028e4f87a395b2b779ac63260fcb68a7a9c7ffc9fea5b065d5bc065c4719
F scripts/soak.sh e184de2f7396ae88c1266d565092282dc9aff151fab8f971840d867562f7d1be x
F src/annotate.zig 0a6b6728099e63c84681d1e5228ebb45fafb55d65df1720358247fd6e6532c63
F src/artifact.zig 36b5eb4ade2c1e5f67de6107cf1c1b90a692c50fe7d328a220548d1b99c9c3e0
F src/artifact_fuzz.zig 98000540f71b1f8fa8a33d2f1da885a6c9c2507108fb1bc95630c3b6b4fab0dc
F src/artifact_test.zig 13e3b0371b8d832030a183a5e6409d2d26d33db3ec7a0d940fd949b65b0856d2
F src/bisect.zig 70a0b3561380f216a0cea9ee9419bb1cd1b77d9b6a73786f41992dfd70ceb04a
F src/checkout.zig 31f20dc1fe5285575b7bfca7fedbca1dae07e2cb77c9fde6f0f27e72a7e4f80f
F src/ci_test.zig 58bfed5b61497fef337c2557dce346de211a98442d7d92f63aaf1385cd7e8078
F src/cli.zig bdc3c6c5a4b40fb3c3c20883928166160c68f0c36e9b05e32653c2eb099e8d0f
F src/cmd/checkout.zig 4dcf7b5db891596d298b99c6e5f15c9dab7aaa84f66dee44c6ff716143548717
F src/cmd/history.zig a69c22be0a669c60ae2294891b7a3acbb61b524f7e20f760b19e8aa893813579
F src/cmd/sync.zig 243b7167c5e202ed06f6db9085e0a2d5082f4c722b1aa6674c382438748fd8a4
F src/cmd/tracking.zig 46b079b974838f92b9508a647c0a89e3747fec09dab072a0bae2c0d0639c4831
F src/cmd/verify.zig 59e75a6fefe9fdb951bc6bd1e3479b2fa557f80eabb65e8ea73d060d76ce2092
F src/container.zig cef1028531f2763f94248b761c8779a1884e44bb854b8c45617494e3ead40e61
F src/container_test.zig a013652b1ed181161d3ad8fc9d8f052f7c27b61e129662632ceaf8cf189445ec
F src/control_paths.zig bc1a94f35675065cee6bf29e9236b443e2a1879ec2f9b65ef0141b1042a77219
F src/crc32.zig 57429c29f4a67a9bfaebad8d5826471f9ff26cfd085c5424bf8e0fccba376bb4
F src/crc32_fuzz.zig 2e6c3425989051ec826b0f1208fa9716808011e71c98ff0a5ae2e38de524caea
F src/delta.zig e8f3a6297d47549aea146222732ccf514c39688414f0a74ba396ac91066686f3
F src/delta_fuzz.zig 5e5c715722760d6f45c4eaaf9b5d495bf83c59e5869a0e0dd76bb57b007e3b53
F src/delta_test.zig b18d97e117dce8fbcc05bff6f6954effdb946bab6d36337efbe5ef64d10646a0
F src/dst.zig 5296a281d8c65b0ed2ff200c74f8fa3088f3d04bd4bd95badcddb6604ebeb95c
F src/e2e.zig 5ffc9bc1e92d1f9d7a095f2d700a4c7564999831d15596d1a558fd0e8b565fb7
F src/extras.zig a105769691ce5fd17f67f037c3d773b6ac546798aa6d49ff1acc064d90b8b177
F src/fuzz_tests.zig 60f1db664e0540a05944c3ddb230125ecfaa971e30aaa18c1001c349e861a083
F src/git_fast_export.zig c4e990ce8299de608757328172e44abc64ee1abb13c3372414bcba1177346c5f
F src/git_fast_export_test.zig a23067622e7f2e24938ab9eb692023d1339623672f3841cfcc11987048baec8f
F src/git_import.zig 15b97ca1edf391bb1d34afb347530c693f1b07c16bf675430d45627e5203e2c8
F src/git_import_benchmark.zig 74e021ef760f779f0a6594568c13031ede2ba2d80932852f7da3cb625952599c
F src/git_import_benchmark_support.zig 1e9bc27aed47e63f315cb5c8a4fea2f43a4ccd410e4aeb35c4a8a81391588f68
F src/git_import_cli.zig f4389a4424c78ea2995f5b466d01ac7599b08017702fde7f5553ea5fd33af6e3
F src/git_import_cli_pipe_helper.zig 0cbb3eba0d56a9d4fb26b74f20565532372c4fbace16742d6943d04b13bdcdec
F src/git_import_cli_test.zig 6ef6a01ef241eaf18e5d196fa493bca5caa99676f5d543c4d0e889f3c86efdea
F src/git_import_e2e.zig d7e9c909cd5c81600cce05fe191e9ad5bd5fdf5fc9a46f7494d0bb9bf43432f3
F src/git_import_impl.zig 2cdda72af44e85cb1d59ed4fecd61657f7bce904f271d1dbf04b352a1c8233aa
F src/git_import_refs_test.zig ba3d652f3f480bb89d40800a75ee5e9e920cd0fe3ed2474237c2fec6adabf83c
F src/git_import_test.zig bcbea61950a14d5911eeede43a5929af8f297635fcada38bb0a9fd051c470054
F src/logstore.zig 15f00a476fff9a0dbb42acb287a7728a73b04f03329e7e5a60dc33fbe6f1af1e
F src/logstore_benchmark.zig dcfcd1d5ca8767e72440521c564f9b21b30d33b81cb2bf5334d1581aee0fc6bb
F src/logstore_fuzz.zig 2f5a65a28aad0c2c8d053d941ba872f53e99414135309c82bf0a0b0efdf9e7b5
F src/logstore_test.zig 981dbc79f4350e67ce570e57e04f08a3e4d67db1be7bbd6f6132774628030497
F src/main.zig b2e00bd5abba2c504cb5142514f60e592aa59b51372f394272c87d937aa20faf
F src/managed.zig 81ccc2d6321fe3dff91f653305ae4e73bea0b3fae7db2ab2f0cf168d9518d601
F src/merge3.zig 7fc52445688751bb8af30462549650660bcdbadabef54d892b6505d628248d0b
F src/merge3_fuzz.zig 83dcd4d9f2f9c208baa15e79ceeea80a0ebf47456a9b045f6d1c1efe3a927582
F src/pack.zig 8b31862126ffcd5ab4133f718bca04329eeba6154ed9a8cf75d2a622303cf418
F src/packaging_test.zig 87e272e5a1487c035fe2f71463fa68006a04764cb7910f8acbb88805f9d4114f
F src/release_assert_test.zig c4f044ebc6abdf46d0d61e4ae870ca1aa3c76487d61e14ddd61f14dfc05f69b0
F src/repocache.zig 32af5b54b011fef358a134273b5e6f43da4282122c05a85ad503a8f7796c6c66
F src/repoimage.zig 7d2dc2f3c145e10e2d9ba6997705fd61a0cc0aedde8e171c253163d1279ccdd5
F src/repository.zig c6d1f000857355ef8686718d8c7b1e94cb52113510a964cb6b48130b3fecd98a
F src/repository_test.zig ffcb406f6a80facde45696b7af8ac321b3972babf636eb26b903c63b6c9f6b56
F src/repostate.zig 4c82aaf78015188753c62883a0bff925626a12b7f23ce5685aedf4330b43167d
F src/repostate_test.zig 0f5c4ae8b3782e6910beb30b4d1960fdd16ec3e7c37b3727633d47ab52b0b8db
F src/repoview.zig a8eb59753412c2fe66b8e46cf450e46ee36869015baa02cf3c2e47b6a75460a0
F src/rfc_vectors/artifact_a1_1_sha1_manifest.txt 82d8fc78b3fbf85efe80cb05e79db40c910bf0551e55b728c6f9c2ca7a42ddb6
F src/rfc_vectors/artifact_a1_2_sha3_technote.txt 832e850f83aab2e2a754aa97591109f7f05fb41e4126c7e71c88a59d6d17e55d
F src/rfc_vectors/artifact_a3_rcard_manifest.txt 47e412ef211f095e93275fadf527909e581eef42357d8437fc7e299bfc3e62a7
F src/rfc_vectors/submanifest_a2_1_leaf.txt aa9d404c14fe4dadd2ab398961fb0dfe650a877c061f650d8233a5888e920acf
F src/rfc_vectors/submanifest_a2_2_leaf.txt a50a722b465ed67b42ee0fbe61e4a19d6b1d22940ba5740e99e450921e3f52ea
F src/rfc_vectors/submanifest_a3_tree_manifest.txt 95fba39cbaba76fccb15571516659cea6a0e8a60123c3e7bda1397649d87c509
F src/rfc_vectors/submanifest_a4_1_leaf.txt b8e53d0c46cb57b616cc0ed6de5ce2453715be6157b73d247bcd5de8a6510aaa
F src/rfc_vectors/submanifest_a4_2_leaf.txt cff23e5ba71569397c1d816afa2dd0bfffc42339e402df36b63623846bd5fcbe
F src/rfc_vectors/submanifest_a4_3_leaf.txt 9604c3f9774f7472d7bff44d5965f30250358a3e7a18046eeaf5f9d83bd5cdc6
F src/rfc_vectors/submanifest_a4_tree_manifest.txt 02dad8d4451ecf930c0c8637cf66351579aa746aebf0cf10f249b2a6dea37caa
F src/rfc_vectors/submanifest_a5_delta_manifest.txt c74e37f650677523f7b6c2b4f094f766c4427a8ea180768ad75fa2de6bd14902
F src/rfc_vectors/submanifest_a5_encoding_leaf_1.txt e2899273b6a258ee18e053a79903d02469a275e2c80279c3657c7b803e2af6c0
F src/rfc_vectors/submanifest_a5_encoding_leaf_2.txt d7edb65681faaa4fd4f3541f04370421b057bf299098b781c7ec50d609869082
F src/rfc_vectors/submanifest_a5_encoding_leaf_3.txt c634332663f1cc0298aae6b61c799214a522877102cd6acdfe633f29fd79eeaf
F src/rfc_vectors/submanifest_a5_encoding_manifest.txt deb0cb8b56fddfc4eebbab0f928cbdb19e64a6ba568064d5b43663dc1ef7263f
F src/rfc_vectors/submanifest_a5_merge_leaf_1.txt 4bf4476e3aa41a1e3d26c85173c18fcd19f61871d4fc31215e523d7502078cc8
F src/rfc_vectors/submanifest_a5_merge_leaf_2.txt 6f3c993caa208b6fd44332d241676f9aa6a8c29dc7e28f287d5cdc088005a842
F src/rfc_vectors/submanifest_a5_merge_manifest.txt cef55b9b325fbc8abd59a044acafa57603c1b11a605e7fbba02d511a6da7a806
F src/rfc_vectors/submanifest_a5_three_level_interior_1.txt d42946de7b59647235f2166d964e9e5878bb1b3aba796b5e9c5e9dc719784e23
F src/rfc_vectors/submanifest_a5_three_level_interior_2.txt c1cc48fa9a3fbc34da7614632137890b4b09b33e750abc75514836c533e5f42e
F src/rfc_vectors/submanifest_a5_three_level_manifest.txt c136ef62f5f13c18d06564649da6022d9fe25cde5be15dd1ad10b04015096424
F src/rfc_vectors/sync_a1_round1_reply.txt 638813029b10f81303b88859279afb17095d7c779c993f4267870909acabbeb9
F src/rfc_vectors/sync_a1_round2_file_cards.txt 4fa397741f7521cc4181d5d6b04dc143187f57602384eaa688552115ecda27c2
F src/rfc_vectors/sync_a1_round2_reply.txt af956808190c79b37a384041690c36b78845b471d6c6c01d1cced6e3ee92e6b1
F src/rfc_vectors/sync_a2_reply.txt aa130a127cde210f793c7842960083c765e0ffc7b673374fabc8f0edfe03d763
F src/root.zig 292ee5328e3828ae457aa4d8dfbf08e210153d8f04b3a039b6f35ce2ccc71059
F src/serve.zig 8f98923b21645f79ef2fa209c5c4408ecd2ad8600c0bd791f9d5f7ae0ad86a6f
F src/serve_benchmark.zig ff55c6148e961c9374ad60a756d9d997fadbc854d2a79d625235b580aefb8656
F src/serve_fuzz.zig 3c39ea768ffa37599e2cc00c588f053870766ab91500aceb0d844a4322174687
F src/sim/assembly_sweep.zig 65016d6ae15579b7e4c7db91ea4659b21dc67533b3807ad30619a3b517ef4ed1
F src/sim/checkout_sweep.zig 80bb6fef67c88a29a2b6bdc372996c9f2c4ad65db289cddebc7a427b42ee5d39
F src/sim/faulty_dir.zig 35daf0603aca3093b88498b51feccad8297f85f49a5c9a7a9d61b02e834081f5
F src/sim/faulty_file.zig 720be41b7f9bd64b9fd2586201e2f62d79c6d60452196eedeb9708b170093424
F src/sim/gen.zig 8189752613ae0c87a34d3ea9ec612db7f2fd8a785b72264957563db478019eb3
F src/sim/net.zig 8fb057012ce0a33f67c928cd696bc2761fea8ba4012b2daa33871b2ba5dfe772
F src/sim/oracle.zig bc9e272bb3332b7b715fbcc254b63583aa294b769d423f4be48593152717dfb2
F src/sim/shun_sweep.zig 8b7b2a106a9eaaeb4d041ec0faa061d51a8c2a866f8fcae5d245f814085b063d
F src/sim/storage_sweep.zig 1f1334ff9a66dd42820a5e378c1f67ea2529adb62ba79add06602323cac01ca6
F src/sim/sync_gen.zig 238d46942915b5c0e989dfc738b5927b5228468ea123e6f17b6fb593aa5cbf6e
F src/sim/sync_sweep.zig feeab7fa3123f8a9a1e6a43b6feee0e4d68479a6a19eb9374d57edbe9c600d4b
F src/smoke.zig f92f9c0bca43eed62fde54e24b72cbd7b9a1f3071f5530d582fa0010cb4c20df
F src/storage.zig 512205eb629d5af8d50ad336f1ef49f53b455abd52ee2f9b56d20893cafad39f
F src/storage_benchmark.zig 9bc22dc2b683bd3924756979f0c2efa075429540ed23a80fec57327bb77b4890
F src/storestat.zig 3ba170b2f7f775474029e183908477169278841e6071ae085635213b70fb8400
F src/submanifest_benchmark.zig f2dfff89ef97406251120eeb2c351e6e31526fb8c15ca94369f0806f66980204
F src/submanifest_editor.zig 4e961b3c4ea46cd4139ef04c0073738d24554c31fff7f8fd5c9b34c0e105d281
F src/submanifest_editor_test.zig aa2ba7de6b68cdf83e4f16d1cd8494cfb91631d45a61acbebe3208fbe86951d8
F src/submanifest_partition.zig 1d06059185986c977d20433ea8318f0e48e7f58a59a7432fb5e93de75a64c932
F src/sync.zig 4136747feff3f85bc00753e387cf23393c7c9d3ebff2a1cfab72e04fe62f19af
F src/sync_benchmark.zig f0d99a1f8273a1675a2f482a4977bbb12fc07a432447905c991bd359db73acdf
F src/sync_driver.zig 722ed498ea6b76900661a085d4257e51f6416d43ac1185e8ac15140de265f67e
F src/sync_driver_test.zig 20eb1827932874422a75d06cfe503680cf17d99152dff1f852989dc22ae923c5
F src/sync_fuzz.zig 0ab9b7195535468db561cdcb405b7bf17536e2c6cb77a115ab1fe2badb001194
F src/sync_test.zig 1e943af3ecff437df69508d4f2b9b77dd340b864eefd1ec8105a638e6b82af89
F src/tidy.zig 59fba497b6a9a39314fc24a08334321ecaad1c026cc0a7d35c67a1e2066458a8
F src/transport.zig 576549f588124d55efb870df97d2578973027e34cd6a6342ecf669fbe7ce1aed
F src/transport_fuzz.zig 43c310c51a6502fb2e049e6f43dfa151b1a632e6c885554ec6edce4ec62a8a48
F src/undo.zig c3ef95e4c6affeb893e60922506b760f483a6640fe3fd5c63bf86c6d20cf2675
F src/update.zig ac85d4c6ec964601975176e1474e145d2cf19fb78471aad04cde0220f5e9647f
F src/update_test.zig 5185a994e37dc3d3d73e37facdc5d85548f14a54e8ca8e32a26216d2a8437818
F src/warmread_benchmark.zig 290887ab34f7777effcd4062c000456b1fcf8a59f84617a96a740d15a0245776
P 81b01a11573bafae67d15363c8ce6e06d0ab95990ecfd1317948e161cb42632b
R 32dbbb73d676bae4e112bfb514748308
U dmestas
Z 560d7e35c31b41f8ea629ad94fd32d0e