{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"DOCS","committed_at":"2026-06-27T11:11:47.950820800+00:00","entry_hash":"4eac2aa61327f45d6e8a91b82df545c276fb71ca4589ca20eb20ef4c2a8e0f04","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"Convert fresh-repository ChangeGuard friction into researched, backward-compatible, security-hardened conductor work with explicit tests, edge cases, contracts, review, and closure gates","risk_level":null,"signature":"4b9c64b6b27ddf6bdbda1c8dbbe2c24d9eb4427b2d206ffe64b21bae818b81fdf09ebbb13f0dfd28f0528121d2fd39b65cd2a8d1f63c82e460a0851f38e7be0d","summary":"Drafted comprehensive TA32-TA34 specs and implementation plans","tx_id":"10ffe79c-835f-4867-a537-ddac4feb9956","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"DOCS","committed_at":"2026-06-27T11:41:58.153437100+00:00","entry_hash":"d4c3630efaf8dcffdc645670d942199bbecfeccb074ff5c35db2eea3d4c39d5b","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"Folded validated external review feedback into implementation-ready conductor specifications while preserving conservative execution and state-safety boundaries","risk_level":null,"signature":"ebe2141bba42623985715271c0325423845b8c6b99ee8d3d6857a7716cd4d315756d9b0fab37f8e920acb2b7f8f3eafa9b451e602c99c38de28cbf82c2161904","summary":"Expanded TA32-TA34 for Deno and monorepo verification, structured credential URLs and Windows rename-aside recovery, bounded empty-index diagnostics, and transaction-safe metadata repair","tx_id":"47169a01-d8e6-44b9-b955-0c080935dd5f","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"FEATURE","committed_at":"2026-06-27T13:45:20.907301300+00:00","entry_hash":"5b1565d140ca93f6e40f6811b0ac620ff61210ef8e0fa5663c18397670553184","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"Complete track TA32","risk_level":null,"signature":"7d330e0450b3a136b68c05176e5ff30fc5ab5aed8ac17a695272825f3223a875e8eba7836e541d2cdcdf7b5794c7c5d28c4b1e330f99951db789b566b819a60e","summary":"Implement stack-aware verification","tx_id":"4fdf6e37-5786-43a3-a483-1d6e51394121","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"CHORE","committed_at":"2026-06-27T14:09:40.431987600+00:00","entry_hash":"8b9562b9d7c7399cd1bbeb72e8f269c4a836b720692cefbc5c0e132a82bdcfee","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"Added missing git diff neutral checks, corrected Node/Deno script inference logic, and parsed nextest.toml for slow/compile-fail profiles as requested in trackTA32 review.","risk_level":null,"signature":"a1f47869c75681a231442068e808d479eee4d18deb008be8bb7c40821d3373ef30dedc66f3d6eceab9b84c4fa117f3680610f2fe1036ef6ac97b0a126ac6140c","summary":"Fixed TA32 spec deviations","tx_id":"f25a4b08-aac6-4a99-a902-e471eb13abb3","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"BUGFIX","committed_at":"2026-06-27T14:19:33.572304500+00:00","entry_hash":"f41b31b048e9df71c4d5f152ee6d3044e04a2c0a6d7ddc74f72d310b97da89f3","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"Addressed high-severity issues from TA32 round 3 code review","risk_level":null,"signature":"68e0036487afdfa4dd88145de79f0f801d5325b76b713a3117fdc518ee0ef596fd11fa8907e2cdb188b0d112c59c39af8f18f650690186b52e021d99be24c701","summary":"Fixed missing deno fmt fallback and nextest.toml parsing","tx_id":"fe019c4f-62c8-428b-a17c-acd055aed7d5","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"CHORE","committed_at":"2026-06-27T16:20:09.744430900+00:00","entry_hash":"eeae2ef59245b16a6c3d073853048db06d0a2f388a21e688707e6b58ae6bc603","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"Post-implementation review found 9 spec defects across 4 rounds; all fixed and gated clean (1307 tests pass)","risk_level":null,"signature":"92445fa8b2218c6cd204970fac5750dc3f62a7ab3e689a8817b4d3ef3e02dbf2c9879ae3a8fbf2b0ff55f1027606f78523aa746d02e95d01765899130485c006","summary":"TA32 stack-aware verify defaults: repo detection, auto policy, hook stderr fixes, nextest probe, third-party guard, repo_root threading","tx_id":"df72e885-b3a2-47ab-ad07-11a13062d878","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"SECURITY","committed_at":"2026-06-27T22:15:07.518941+00:00","entry_hash":"1a0cbb7d88af453ec0d195314cef0945ba0ceb9ff5d7d29027267a7f564fa6b1","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"Security track: starter TOML sanitization, transactional alias replacement with crash-safe locking, platform no-replace publication, 16 findings resolved across 6 review rounds","risk_level":null,"signature":"5a699d700ec3a5742e23a6b10d62aaea3c87359e685ad3f799e6550e85e2d5a2dba2e87fe5d78e2a1ef0b672d245f33757c5be8eb37756bfa46ab12642c09303","summary":"TA33: init secret sanitization and alias-refresh hardening","tx_id":"3c9c2489-51c2-4306-8883-71071c2d1060","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"CHORE","committed_at":"2026-06-27T22:16:27.876480900+00:00","entry_hash":"2c69c9c88c68e947be4e7828901a4da586ebea12605facacb5b4488b6c09ae2c","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"Pre-commit hook intent transaction for TA33 implementation commit","risk_level":null,"signature":"7316f6a8339001c28772bebb5677c270978d77583e63f8a10ce89790595f92ed704c7005ec2e51a66aee0a5ac8d6ca209b58aa935146239de8e430816170110d","summary":"TA33 commit sidecar","tx_id":"484ea55b-2f46-4e66-935f-45a5cb4f210b","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"DOCS","committed_at":"2026-06-27T22:39:50.293058200+00:00","entry_hash":"6be4f6e2c7ba54eb86d29bc95b54468ad5cf2b002c918f3214e45890479813e2","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"Git hygiene to track pending work","risk_level":null,"signature":"869e1cef1ccccd4de163316e0c46a7d5bad8a5ec44e849085386a6e901a3c44d520f0e2fdedff46d6a8b69b5229ad97f2f8f81a93c9adca2b5fd58b38c22da07","summary":"Added TA34 spec and plan","tx_id":"da65b887-794a-4efb-8fbf-72fef53ad657","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"CHORE","committed_at":"2026-06-27T22:40:33.498455400+00:00","entry_hash":"57e04da6c00a3ffd8a1eedb1a2db195ef1d4c94a83cdbfb319b71c01214d165a","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"Added new track specifications to conductor","risk_level":null,"signature":"cf938cad53e15b851fe260ab3e0acb03ed5125afffe1af5d16d95308b2e9ac6a4234d1435a34a89e67a286b79ab0070ffba3220b9bae942c1a76f57c4c87fc08","summary":"Add TA34 spec and plan","tx_id":"9ea3d443-6474-40e6-bcd1-9148a69ccdc4","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"BUGFIX","committed_at":"2026-06-27T23:23:12.466808900+00:00","entry_hash":"5f925cad28551c9bf535e0841c3058d633fbdb235cc05d7a53f11b03dc9f4b25","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"CI/CD failure resolution","risk_level":null,"signature":"b260d428f0b1cf7f117fb0affa49ef15bc0684a402db01316a84ea9c8b6c46e433636459bc782461623c22742e4b2f8d6794772ed3c1192140f8ef067951780d","summary":"Fix compilation error in release mode","tx_id":"0ca9a2e0-f108-40aa-be53-f9151df9c1bb","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"BUGFIX","committed_at":"2026-06-27T23:43:24.311381+00:00","entry_hash":"2af489a1a051c1d3af81f1aa039a1288427d8df67d6e081c469d9d8827070bc6","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"CI/CD failure resolution","risk_level":null,"signature":"4ee13e90065b1eea92216b869220fc1c0e9736c41af6888bef086bdc14f3348ee9d119ed86d5bbd0ae245598c49d907d0515a8e2f2852e039688b3909f2e3a08","summary":"Fix macOS test flakiness","tx_id":"b4ac1668-834e-47d4-8b8e-7375e788ae51","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"BUGFIX","committed_at":"2026-06-27T23:49:13.026721100+00:00","entry_hash":"1db42aa4f24c4c3ba0d550bc673bd9416db9701dacee92d495d8a9de304bbf80","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"CI/CD failure resolution","risk_level":null,"signature":"44629fa15cbc9a294aad22f4db061823089fee3acf86ea5a59ed52b31f842a89ae05c0a9eb21d4011c07e5bf2c7e6e243bff24db5cf2ae671f427ef739e2420c","summary":"Fix macOS test flakiness","tx_id":"bd184ab1-83a4-4018-a813-c335d449c5df","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"BUGFIX","committed_at":"2026-06-27T23:57:01.254189100+00:00","entry_hash":"aff7903b63d7ae62d32f477cfc837e3b13ab2a78af1cd675399f39e6842e0ed1","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"Ensure staleness queries recognize fresh empty repositories","risk_level":null,"signature":"04f33be8cddc935abe323f091d85957e57591a8e555970e59b3be2df990ff27809a6897ae7bf32d5c142dd483a05f233eb26ac32ad0fb7d285f7cfb5b2ada202","summary":"Fix missing index completion marker","tx_id":"bcd5eb25-652b-44ac-b7ef-fc47cc5af04c","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"FEATURE","committed_at":"2026-06-28T00:11:11.972845+00:00","entry_hash":"53157eb7df3803c55005064edd881aafbcd8845e99b504416f1b675311d063b4","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"Complete track TA34 requirements for typed freshness assessment","risk_level":null,"signature":"b577db8d3443cecff51ed99733511a611aab07c8f405e29d6e6a76a7f03856e3c5590ab1c64256e60ff846ef53df58af526438d213a0a3c5e7b67f7607ca1204","summary":"Implement fresh empty-repository index semantics","tx_id":"eabff55a-b3c7-481c-9753-f2a55d13b610","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"BUGFIX","committed_at":"2026-06-28T01:07:38.063540600+00:00","entry_hash":"8fd17914e42805c335b8de87955b257664bc4b7ef2c64ff4ef6ba87538414e93","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"Provide robust type-safe semantics and shadow-state rollback repair for empty repositories","risk_level":null,"signature":"918f028a4aba4fd459dae181d771b396979c9071f7c41ea217b7f74d0b75e94a21280e87b9269ea4d5dda41b281d7274df674f705232973b837aa6461b7b3909","summary":"Implement TA34: Fresh Empty-Repository Index Semantics","tx_id":"5739bc42-429c-4d7b-a30d-30560e93a203","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"CHORE","committed_at":"2026-06-28T01:08:35.558185600+00:00","entry_hash":"3a654979f4fdba3ef479de9934884c0b2827aa2c88cdf354d3913becc5842f94","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"Provide robust type-safe semantics and shadow-state rollback repair for empty repositories","risk_level":null,"signature":"c5efd88a91351e0fcaa69097ebd525dbf8fa1d56f92a11a2b0208a1cbb1b9ad1450d6555f01b6a269ab2be7cd9e06301772c0866b18c4b46df1730e4823e9c08","summary":"Implement TA34: Fresh Empty-Repository Index Semantics","tx_id":"3613d8f5-7215-4f7f-b0fb-2048f2e1c552","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"BUGFIX","committed_at":"2026-06-28T02:44:59.353860700+00:00","entry_hash":"32de46df8a6c75354e4ea8a0e33a18139294eca3f40f5edf386cf812043f6080","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"CI exposed cross-platform fixture assumptions and an action installer that built the remote default branch instead of the tested checkout","risk_level":null,"signature":"d84eecb1dfac6ce0199ec1cbe64b600f0d45dc3499c3c1c1ea0c4ff86826ba3759137df3ba3c83a757bd9bf0e9073c05ee54651150c8d4604724a73a957e5b03","summary":"Repair TA34 PR CI across formatting, platform tests, cache timing, and action checkout install","tx_id":"2b8605f0-f2cd-43ef-8710-6f28d69cd61a","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"BUGFIX","committed_at":"2026-06-28T02:46:08.580253100+00:00","entry_hash":"6f929a515b6779094f6a302d475a01850e1c0f134fb4620e08ed93ffcdcaef2a","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"Format the TA34 implementation, correct platform-specific tests, harden cache timing, and install the checked-out action source","risk_level":null,"signature":"7d8346c715de5154573c0bce6121feabca343d1996aa985a55ab0ac209f23f6fbd6af4d7590b013cf1b58e3cf832b27f5b47e4f801d1d480e7ebf861dd178200","summary":"Fix TA34 cross-platform CI failures","tx_id":"fbea8f56-b660-4c25-9ddf-ddf57519b5f8","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"BUGFIX","committed_at":"2026-06-28T02:54:53.536026900+00:00","entry_hash":"78806dd5b139590e6ead1ade737cfc002102afa1e5cdfa6f0e796b01e0395d23","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"GitHub does not populate GITHUB_ACTION_PATH for this JavaScript action runtime","risk_level":null,"signature":"11ffc430d166f6c8eaa4d6f889d9a1d45f331495e06ba01196cd4cfbfb6dc83c1c5490ed83dce502df69fac5a1ee08c099b2ad199a33b4880b7e7acc62d22d00","summary":"Discover action checkout from the JavaScript entry point when GITHUB_ACTION_PATH is absent","tx_id":"78a6bf09-4c83-4d12-bdbc-496942984b9f","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"CHORE","committed_at":"2026-06-28T02:56:03.200228400+00:00","entry_hash":"5c63ddb671ca4025474e8efc18955ad5a2eea81b11a2b0292f0d26f6a4a0dd91","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"GITHUB_ACTION_PATH is unavailable for the JavaScript action runtime","risk_level":null,"signature":"746c1bd911b3fba3f7fc9fe1887126c37249b7ecd06ca4257d3b586c66eed5fafc205094f3a36d61da385f6fa8994591f38bfed16e5fb1e6e1bcb67c56aeee02","summary":"Add JavaScript action entry-point fallback for source discovery","tx_id":"9316c646-1d68-48c5-bc26-5303cf7b0e7f","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"BUGFIX","committed_at":"2026-06-28T03:14:20.478359+00:00","entry_hash":"e2338ce4a5fc3d2e13ef133fd8493a8a810de84870b97bb1963af30a04ca6c1f","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"Generated verify config differs between local templates and CI defaults, while crates.io transport failures repeatedly broke install smoke","risk_level":null,"signature":"10b30cf60d19cfc13169232b0f7d3a47831f8d462ddeea0c8a020e237ba6fbb84aadc0f8ff2d3d98932fa8a011efc516b44efe1bdfb650c128d79b3090f78605","summary":"Make TA33 CI fixtures environment-independent and smoke installs resilient","tx_id":"ef00a8c3-c623-498a-bc49-c200aa513266","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"CHORE","committed_at":"2026-06-28T03:15:14.081819300+00:00","entry_hash":"ab3bdda2f86152366b72cdb6be908552c6371f0e0742cfbfff4cd200025df1c1","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"Ensure generated config variants remain valid and transient Cargo downloads do not mask install results","risk_level":null,"signature":"e332bcaf476030f93788dfba38ea4af7b954d90a4f941bcee187c295500557aea7c37b1724019ef3ff8b2eac46b78ef6a953ec960cbf0e0f2d78352fd5565b05","summary":"Harden CI workflow and verify fixture for TA33 closeout","tx_id":"36e234a7-0835-4ead-9199-0e80e98fb6d5","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"BUGFIX","committed_at":"2026-06-28T11:24:13.896168600+00:00","entry_hash":"b1445b3d367859a0b4d4dda55d4c11bd84ace23b1c382e2cd69fa083ceabcfd4","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"Eliminate empty-repo stale loops and make corrupt metadata repair rollback-safe without replacing ledger or Cozo state","risk_level":null,"signature":"bb36d79bacbb4827ecdee1da05d9a8df1bfa02312fbbfea34be09c500c749ac44314a1663900d762298af54b41ea59fbd1cddc2309309ce2ffd1eea492686d07","summary":"Finish TA34 typed empty-index freshness and atomic metadata repair","tx_id":"af054580-fa82-4583-a780-3050945277a7","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"CHORE","committed_at":"2026-06-28T11:25:02.708428400+00:00","entry_hash":"fba57bbd754ea4bb9fac0da959834ba4731083946342d3c4ebcec11727902b3c","prev_hash":null,"public_key":"5b3abacf95e32ce54d404f5b987b086056b0769e95d9a4204302dbc19803e5c9","reason":"Associate the completed Git commit with the ledger after the commit hook created its change record","risk_level":null,"signature":"51679b26bec6a1f4c664f1d8000aa96235aac3af98131c92ba6c9de357e760bfdf95f21d8a44066ca21328161704bb60f1ae5f7856c3a8798535fe7f10fc8e05","summary":"Record committed TA34 implementation","tx_id":"d4737ff9-4134-4f82-ba97-8d95a046d067","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"REFACTOR","committed_at":"2026-06-28T18:58:53.264269800+00:00","entry_hash":"7d00738bc4e4f515e7b4019d213bcb4bc395a218b8727fa54ebb3881e16e44ad","prev_hash":null,"public_key":"a856981e6a21f52d8972cfaa84c420b54a576dd270e2363a95461be9f5a42dc2","reason":"Complete RENAME-1 with migrated state and env identity, packaging updates, licensing artifacts, tests, and verified review fixes","risk_level":null,"signature":"4595f48cc2119b080f93cc8066f63e76344a2894812e94f969abb058815f9d4e58c6e1c3cdd46c2272d399c972e6a9ccdc2ab1c00c3e9317bf6560e45fadf402","summary":"Implemented and independently reviewed the full Ledgerful rename and private-tree relicensing","tx_id":"acdd76c6-836c-4dfd-be7c-b68e5256fe76","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"CHORE","committed_at":"2026-06-28T18:59:27.029322100+00:00","entry_hash":"a5b155abd3e32995869768d492521a6eba727506e450ed200791af3e73984554","prev_hash":null,"public_key":"a856981e6a21f52d8972cfaa84c420b54a576dd270e2363a95461be9f5a42dc2","reason":"Keep git diff hygiene clean after the generated notice was staged","risk_level":null,"signature":"4278a2edb7777acfec4f267b713bb10ee21081695e03fdd21e6d6f71864b1f7d670de03f6c55e5cf7d10db14a35b53c4e1d8d9d0ba88bd183b7eb4c20717a700","summary":"Removed trailing whitespace from generated third-party notice","tx_id":"989270eb-00d6-49a6-8123-0c90d8b9d129","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"CHORE","committed_at":"2026-06-28T18:59:39.997885700+00:00","entry_hash":"658586160b4d9f418c0c28156d762ef0f35f15b51bf3306ad53e641fdbeb1305","prev_hash":null,"public_key":"a856981e6a21f52d8972cfaa84c420b54a576dd270e2363a95461be9f5a42dc2","reason":"Close the post-commit sidecar created for commit ea2ee25","risk_level":null,"signature":"2dd1964388f472447cf28fa14370fa3231b299a8b2a143b81a283886bd549c01c5df9410dec1267b4ac27994b528140a0d6f51fb497da3dc81e7c0b07f6bb905","summary":"Recorded the committed RENAME-1 implementation","tx_id":"3745145f-001f-474f-9aaa-32b87f7c2875","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"CHORE","committed_at":"2026-06-28T19:00:19.769814400+00:00","entry_hash":"ebc6afee52b52570e09313bba9ef53390742e667f3d8d5ce5d5137cfa89596f6","prev_hash":null,"public_key":"a856981e6a21f52d8972cfaa84c420b54a576dd270e2363a95461be9f5a42dc2","reason":"Close the post-commit sidecar for ec504fb","risk_level":null,"signature":"113b5db0f54832c0db9a6484c13ed736c4f14a87febf0ba71f5d187c6d097d2f1e7ded9d07e71101085bb33e3be72294e54f47504a5cba05380dff12ce626d0e","summary":"Recorded third-party notice whitespace cleanup","tx_id":"faa98a2d-b14d-41a1-a5cb-b31bdd045d1b","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"CHORE","committed_at":"2026-06-28T22:05:32.765807800+00:00","entry_hash":"356633bcefe0df08eff10a0e41645712bd90f3bffa1b799d6e080b2a0f7e74a8","prev_hash":null,"public_key":"a856981e6a21f52d8972cfaa84c420b54a576dd270e2363a95461be9f5a42dc2","reason":"Prepare repo for public release by removing internal specs and old name references","risk_level":null,"signature":"7c98bcc2de5d5281c31f0112f92080560862e924014b14a1f3b60c923c8855abd884f4d463fc108a61e161ef0c8d8ec77ca17eb39456337bcad9e07d8987a105","summary":"Clean up historical docs and legacy references","tx_id":"4c4fc646-da33-4f14-8b4c-8fd90d020523","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"c96aa6c8a57fce2053afb83d7c28f647bb0ff49b702e716ddbf524d465e0f0d8","category":"CHORE","committed_at":"2026-06-28T22:05:37.618234400+00:00","entry_hash":"69103ac803e0d806d283224f81de30970c6f3a6d9e3bd66c26c11075ed94a915","prev_hash":null,"public_key":"a856981e6a21f52d8972cfaa84c420b54a576dd270e2363a95461be9f5a42dc2","reason":"chore: clean up historical docs and legacy references","risk_level":"TRIVIAL","signature":"43d451c172fac3ecb4120d8fbe8b425cefcbc734f96b9841a9ad9900b4e9b0987cf560c0180759fe30b1a04f50b242590d8a32cea65529114359841ac57c6f03","summary":"chore: clean up historical docs and legacy references","tx_id":"826e88b5-a3d2-4fd5-a800-ce8f80aca937","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"INFRA","committed_at":"2026-06-29T13:33:05.750062100+00:00","entry_hash":"6246460d021c07e8c37a3de649ca43e20aa54b4358262a011d6c4dd3851b270b","prev_hash":null,"public_key":"a856981e6a21f52d8972cfaa84c420b54a576dd270e2363a95461be9f5a42dc2","reason":"rename acceptance + distribution backbone","risk_level":null,"signature":"0911715e15cdc16ee5a3cf1c83695d25111c5b939ac89caa120efb2dc6ab44bf4f0d9a66f291885f0c9357d3462db4002954534cd5e0103bd2d6a382a2693a0a","summary":"v0.1.6 first release: rename acceptance gate + deny.toml license fix + CHANGELOG + license finalization + release.yml macos fix + tag + checksum-verified install smoke","tx_id":"710f4e08-94d9-4c15-bfff-15eb76794b01","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"SECURITY","committed_at":"2026-06-29T23:46:58.502689700+00:00","entry_hash":"37baff5dfec026466f47671b11d7b7503a38ad75e1737abaa58dfb9dd0446ee8","prev_hash":null,"public_key":"a856981e6a21f52d8972cfaa84c420b54a576dd270e2363a95461be9f5a42dc2","reason":"supply-chain + CI security baseline across all 3 repos","risk_level":null,"signature":"a1ac933944c992dd1383d88507698e17bdc0762c5a66aa12065875b9ba5cae14476230addde1854a68df5277f1c4b1d71712cf1dee0dbc6bfa59c3f1003f630d","summary":"A5+A6: slopsquatting sweep (126 deps, 0 flagged), gitleaks history scan (0 real secrets), cargo-audit/deny + npm audit in CI, semgrep SAST, SHA-pinned actions, least-privilege permissions, CODEOWNERS, dependabot, AI-code review protocol + enforcement gate. Fixed anyhow RUSTSEC-2026-0190. Branch protection deferred (requires GitHub Pro/public).","tx_id":"f4001cf5-a7da-402c-bc80-28b90bd81b30","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"SECURITY","committed_at":"2026-06-30T01:34:31.663234100+00:00","entry_hash":"e5b9e2a4ebb0b7b667f301403b7168285e01ef6af3b0dc955de7cf843f57421f","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Address Phase 1 findings F1-1, F1-3, F1-4, F1-5, F1-6, F1-7 per 0005 spec DoD-1","risk_level":null,"signature":"a35604bab69bb6b0b2f759c8891d2069f124161759846f36eda02d3371051f0dbe33a4190ad93cecd01de1e032300fcf65a5f0642754d1e5122f4a70810e4d0c","summary":"E1-CRYPTO Phase 1 remediation: XChaCha20-Poly1305, AAD, token hardening, key perms, Argon2 errors","tx_id":"ae41a0b4-10fb-40c2-96af-2ae02b34366e","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"SECURITY","committed_at":"2026-06-30T01:52:38.237295400+00:00","entry_hash":"8f2f5a3846c71a8dcdd6b3f7022f23539f5d75cefdb43a29765444d2adc30262","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"F2 findings: explicit shell opt-in in VerificationStep, argv-only direct execution for rule steps, canonical path ProcessPolicy with strict mode, control-char validation for entity substitution, timeouts and policy checks for MCP/SCIP self-spawn","risk_level":null,"signature":"9a68a9d357fbf5899aa89e6b759ad44f2146c239af4dcab8ceed24cfe1e31dfe09eb683ae0875376070dec98aa0a57d5078ae46c66e7aef96208fe7923fa9505","summary":"Harden process runner policy and subprocess execution","tx_id":"9d61684d-2c05-406a-b8c1-52f3e0c19fa4","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"SECURITY","committed_at":"2026-06-30T02:01:23.834580900+00:00","entry_hash":"0f54d1b3740471857fcd7b4f3c020ae1c6e28e97e2e86a7852f323318ebfaa64","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"path handling security remediation","risk_level":null,"signature":"67e490033bd5dff605b31d380440723534a89bdd22b967a8e928511e58c49b2d280bb8cc88c627e5f170bafbceda050b6a60c49466dceb5c2d108ab17a284908","summary":"F3-1..F3-4 path handling: clean .. in normalize_root, component-level schema.rs checks, symlink-aware ensure_path_within_root, Windows special-path detection, proptest dev-dep","tx_id":"4422e77a-d639-46f6-829d-dff43d545bec","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"SECURITY","committed_at":"2026-06-30T02:20:11.961746400+00:00","entry_hash":"be1ae139361861e7b8681849b8de3d5f8294e3f156e0adae678a7a5b93d6f48e","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"F4-1 verifies Ed25519 on raw manifest bytes before full Manifest deserialization; F4-2 caps bundle and manifest sizes; F4-3 validates entry/tombstone bounds and entry_count; F4-4/F4-5 hard-cap MCP Content-Length and JSON body. Adds regression tests for F4-1, F4-2, F4-4.","risk_level":null,"signature":"4bf1a9a513e352e2f4e38e4580bceb23607ded71fdcf07593fdbc49623e46e509e1757d1da2228f18ef06cb30e115328a632941c37104aaec0e752236ec53605","summary":"E1-CRYPTO F4 deserialization hardening: Ed25519 before deser, bundle/MCP size caps","tx_id":"cbd62db1-e8a7-4c0c-a6ed-31fb8ca0a0f2","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"SECURITY","committed_at":"2026-06-30T03:06:59.580635+00:00","entry_hash":"6965078457f3050f730cbafa3badb65cb74c5c06cb18e8e2cf5ce324aee91920","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"path handling regression pinning","risk_level":null,"signature":"9254f0a3f6a228570a90e51c1e2cdf59e31b90706ff640a42c6270254369eedc01f8be8e4038cd3e3e0c8475cd05fd2da850b552d3b46554279259ce8d0afb0d","summary":"DoD-3: proptest lexical fuzz + symlink-escape integration test + normalize_root regression test","tx_id":"45236166-d7e9-4649-ac95-be33393e0e28","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"SECURITY","committed_at":"2026-06-30T03:21:21.294851100+00:00","entry_hash":"9613259df2557f20adc7f1d3c14f488556e4513cb559a3d29db6ed97355cfb7a","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"User requested not to commit ledger transaction","risk_level":"TRIVIAL","signature":"83683c199a68466eeafd4296443765c0a9784ee914e93ab124bf27d9bf2ec91ed4b09ab75ce1d2f313775e96babd60341c2b6a2f5b19af256b9d09953927b80d","summary":"Transaction Rolled Back","tx_id":"493f9fe4-7002-49a0-8e99-bcf450348353","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"SECURITY","committed_at":"2026-06-30T12:01:16.509410500+00:00","entry_hash":"69557c68e2e59d7ab87a5a2109ba25c51bb729a4034abcbc44448926ddd1e4a3","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Pre-existing pending security tx on server.rs belongs to this track; adopt before continuing.","risk_level":null,"signature":"57f45ff55949a3520f57b1d50e5b2ed2c1e3ec54b4f277e43b4dcf775c134256c6658f925ab297ae2028e96936ce5d4f8bfd264e98e45a0dbe643f20af89920d","summary":"Adopt pending security work for 0006-DaemonHardening","tx_id":"84097995-ddb8-47f4-a0a8-1fe902b0e7af","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"SECURITY","committed_at":"2026-06-30T12:01:27.939942300+00:00","entry_hash":"facd2e2212740433c48068a655333485f2f340f7138da75826b8edbd301aa3b2","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Pre-existing pending tx for daemon-hardening; adopt as starting point for 0006.","risk_level":null,"signature":"9650aebcbc1fdd4c21af7e9e58b8240a51d125ba92819627d495ec19a0d2adfc1359b7e6ff67866df053e7ab7f146fbf49aa964916ccdd3bc23c84c366d6d500","summary":"Adopt pending daemon-hardening tx","tx_id":"d5b53140-b773-448a-b5b3-4c4bf12d0ee6","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"SECURITY","committed_at":"2026-06-30T12:46:29.939878800+00:00","entry_hash":"5435845f66cad7839da1af1109b1e2c3a4c8e616cf26899e205ffa7a7a0961ff","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Completes DoD-1 through DoD-5,7,8 for track 0006. Verified by clippy, nextest, ledgerful verify full, and frontend build/lint/tests.","risk_level":null,"signature":"fb30fca563630e421e8614b877026a3a019aa86d5e7aa6099c7425ddda1f294cc7e03bc77a5f9a09919477167ee729071524a33915c6f3692f2b58b8e0a0990f","summary":"Implement loopback daemon hardening (0006-DaemonHardening): Host validation, CORS tightening, token header transport, CSP","tx_id":"eb1beaab-9e04-4ae4-92f6-2e25f7d89a8b","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"SECURITY","committed_at":"2026-06-30T23:18:18.654758300+00:00","entry_hash":"04c720e67f778a90d9db6cc4656bbf6150ff2e2a58a91b5f8a3add45087af1d5","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Track 0010: GitHub-recognized SECURITY.md with dual-channel reporting, scoped safe-harbor (DRAFT pending counsel), supported versions, realistic response windows, no PGP/no bounty. Email provisioning pending Cloudflare.","risk_level":null,"signature":"8867834d63ec751697d8026adc2953582c733a67e851f9c40502d8fa7a9d1246cdb6d4ba1ce9462eb965973a7bd943d3045d8bd249f82c735c244d89fbbc8a03","summary":"A3-DISCLOSE: SECURITY.md + responsible disclosure channel (email + GitHub private reporting)","tx_id":"61a7a945-adee-4de9-a900-ef45656382e2","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"INFRA","committed_at":"2026-06-30T23:41:31.861272900+00:00","entry_hash":"f6bd1ee0530a4deebcea565e8464891227093056636e7f5d47388247aaa64db7","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Track 0011: endpoint-aware OpenAPI (docs/api/openapi.json, 23 routes), drift test proven to bite, wire casing fidelity, §4.2/§4.4 reconciled, §4.8 fetchStatus divergence documented, deferred #30 resolved","risk_level":null,"signature":"707743f7b660b0608bddfea5b4d675be50aa92974bebc9b6c34b82002a5f93916d32070ea0ab9b96effadd88c6093b0347b6b7811fbca7535fd4ff510fb97504","summary":"A4-CONTRACT: utoipa OpenAPI + drift test + coordination.md reconciliation","tx_id":"95c41dd4-6867-400e-a608-9874161a7989","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-01T02:38:04.305097200+00:00","entry_hash":"d641885cb2b863e938b7e16f5816a19e3a294512c6a300f461ad336f77671e2a","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Track 0013 engine phase: /api/sync/status in OpenAPI with 200+501, snapshot.recent_changes typed as Vec<ChangeResponse>, snapshot.top_hotspots typed as Vec<HotspotResponse>, WebError::NotImplemented (501), ProblemDetail ToSchema, sync module split (hlc/state/error un-gated)","risk_level":null,"signature":"8851c2ed48b9bdcaf98aab081e3d2c7604aae4a3c11ebae672b2907114614a85d081d7caea15450a524724b10dd3064ea967080f8793fb8e12c72fad685de601","summary":"A1+A2: sync/status schema exposure + 501 no-sync behavior, snapshot typed (ChangeResponse+HotspotResponse)","tx_id":"4910f2b5-9524-4e77-bf14-0b94d6b578b2","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"REFACTOR","committed_at":"2026-07-01T11:14:41.205207+00:00","entry_hash":"4f31504bab6d376946230bfcbee22f5b6b2197e0c5f5178384dbb68e9107675a","prev_hash":null,"public_key":"6ba3571ccad66a9a2223864d073e2fd819108060a45a4dfbc34050f6b4b141fb","reason":"Track 0014 Phase B DoD-5 + DoD-6: clear the private.pem misnomer deferred row; memmap2 0.5.10 via cozo cannot be bumped (no compatible patch); codex re-review clean","risk_level":null,"signature":"39fecd89d71165dafa498bd69bf6ddfa281591e3509222a82affd8db99a512160eba9caf86b9582ef26b8df4ce36c948e86b8826a69cd1f3b7c7299d1a077f02","summary":"Active one-time migrate of private.pem→private.key with identity preservation; memmap2 patch attempted (left deferred); fixed 0013 sync_status test bug","tx_id":"372114a2-f1a6-4dcd-88df-e9f509561342","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"SECURITY","committed_at":"2026-07-01T14:25:07.920232500+00:00","entry_hash":"db1ca944cda2c1ef8bd97d22d25c0baabbf7271ba90439c3db0f14b2258b966f","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Eliminate test leakage into real ~/.ledgerful/keys, add DI signing variant, assert keys stay within state root, add explicit keypair consistency verification. Addresses conductor track 0015.","risk_level":null,"signature":"302ff784ab7bf44fdd541b25cf1d4a822af379bf1f14f800cd97dd248a4e2e076f5a11eca48f656772c6d04db0addc36fb520fda311b24d32943f0967513400b","summary":"Crypto test isolation and keypair-consistency hardening","tx_id":"30a8fde1-481c-4162-9723-71cc04fa0f6d","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-01T14:25:11.290663600+00:00","entry_hash":"d3a02904fb72231c4973af9e27f109ccd7b801dd880df17596565bf161f87b5e","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Completing prior bugfix transaction before finalizing work.","risk_level":null,"signature":"381083c3e1ace6cdad7da129f294e2aef10f074c42448cf034421b69ae29c421b0be51e3b6dcc6569e7a2797bfa353f39ef3a2ba49a1e9bb065355808f1f0108","summary":"Bugfix cleanup or completion","tx_id":"c57b8977-86a9-49e0-8c02-ae8ed7ac7177","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"SECURITY","committed_at":"2026-07-01T14:39:20.788604500+00:00","entry_hash":"da35b81f49275bb6ee0f06cfd66c231836cf867a8e290201590d1f31332e5939","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Cross-model review of conductor track 0015: HIGH symlink-escape and MEDIUM refusal-path coverage findings. assert_within_state_root now canonicalizes the full path when the target exists, resolving symlinks before containment check; extracted parent+name fallback to parent_plus_name helper. Added unit test proving symlink escape is rejected on Unix and existing-file path still passes on Windows. Added integration test proving verify_signature returns false without panicking in a mismatched-key directory state.","risk_level":null,"signature":"09caacd3336ae711c6346c59112957fc294cfa4c1b7a53599ccf8f537c748d4155ea9a91550e46f2f3fda8c680175c6475bc56b0090511127991abc2f75af00b","summary":"Fix symlink escape in assert_within_state_root and add read-only verify test for mismatched key state","tx_id":"5032a61f-a05a-4725-8cd5-d64cf5ccf60b","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-02T03:55:45.850836700+00:00","entry_hash":"e9c761c4211dde0f5a369080595e69fa75ad34f6dc08706d2eb43e96eb99df2d","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Codex review for tracks 0016/0017: scope first-byte timeout to headers, use get_keys_dir in re-sign, keep dry-run read-only.","risk_level":null,"signature":"546ebb1b5117a7f5b41252db49a51b9ead776125957b2abe55ae463f3120beae16822da21bee3424de9020544e8c3c7b1091236af796608442aa6b033b2a6c0b","summary":"Fix HIGH-1 first-byte timeout scope, HIGH-2 re-sign keys dir, MEDIUM-1 dry-run immutability","tx_id":"13f2f4de-3a87-4323-925b-d68c666c8e54","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-02T04:19:53.017224200+00:00","entry_hash":"289b9be557bb22221ee39e21834cba7299f9ea71da762b32e59652f117b63de5","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Replace throwaway external DB script with audited, safe-by-default re-sign path. Reuses 0015 invalid-sig detection, re-signs via engine DI signing API, WAL-safe backup (Online Backup API + integrity_check), single MAINTENANCE audit entry per batch. Cross-model review: codex R1 found 2 HIGH + 2 MEDIUM, all fixed; Claude R3 clean. Gates: fmt/clippy/1895 nextest/verify full green.","risk_level":null,"signature":"7bc235c983ffd83836d46f57c6b287a05821c52f63b07b27536f3f7ee3bbdebc63c76af8f6a0a7dc146998f547ffd2aa44c52ecf2d2373d02bcea7deac0b4607","summary":"First-class ledger re-sign / key-repair command (track 0016)","tx_id":"95bb6d6c-1ecf-4b7a-b736-a03a5026534e","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-02T04:20:00.782877600+00:00","entry_hash":"11684c3a9f4fbcb29034db9d9754fc3dab2792f07c3a53cebb087c3aeeacbc62","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Fix two pre-existing defects: (1) impact stalls ~10min when completion model unreachable — added first-byte timeout (15s headers-only, generous read for body) + bounded retries + graceful degradation annotation in impact output; (2) cozodb_integrity flaky under parallel load — root-caused as resource contention (30 subprocesses x parallel tests), serialized with #[serial(test)]. Cross-model: codex R1 found 2 HIGH + 2 MEDIUM, fixed; Claude R2+R3 clean. Gates: fmt/clippy/1895 nextest/verify full green. Cosmetic lows #3/#5 logged to deferred.md.","risk_level":null,"signature":"90b83be09a5e17265f859d06928f68eeb8146e2ef697013ddd4d9eb19aaf07eb10f00d65abf159ce90a66473c59ee43daee8a580446e9d50a75e82273a366e03","summary":"Engine reliability: impact graceful degradation + flake fix (track 0017)","tx_id":"e9bf0890-b4a0-4060-b751-11975177b320","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"REFACTOR","committed_at":"2026-07-04T03:37:48.487290500+00:00","entry_hash":"2e734b63ae4cff4113a4c02583864a2b69887ca3bff863892a9b7c4dba2f0e8b","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"- hook_post_commit: run incremental_index() in the post-commit detached\n  thread before hotspot trend recording, best-effort/non-fatal, 30s budget\n- vector_store: lower ef_construction 200->100 to halve HNSW rebuild time\n  with negligible recall impact (ef_search=100 compensates)\n- scip/orchestrator: raise SCIP timeout 300s->600s for cold-cache rust-analyzer\n  runs on large workspaces with vendored crates","risk_level":"MEDIUM","signature":"05752f51ee8fd2d177b49e609d46e277bc69e1c2bae1be368c5a705508f3735389c0ce88f540f6583a412a612108c779c98f582daf63dbd866e4b4c77eb3ef09","summary":"perf: auto-incremental-index on post-commit + lower HNSW build cost + raise SCIP timeout","tx_id":"0a2d5b69-13bc-4ef0-8635-7df17795f20f","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-04T03:45:08.702597400+00:00","entry_hash":"75edfc2c3c956b07886eb5104132de1d154e05235ee916f28122e216964b3850","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"rust-analyzer scip emits thousands of stderr warning lines. The\noriginal code piped stderr but never read it until after wait_timeout,\ncausing the OS pipe buffer (~64KB on Windows) to fill and the child\nto block on write() — a false timeout no matter how high the limit.\n\nFix: spawn background threads to drain stdout/stderr continuously while\nthe main thread waits for exit. Capture the last 8KB of stderr for\nerror reporting.","risk_level":"HIGH","signature":"38c6a11fd50100d8bc094cec54aa29cd29d887e1e89263ba4c1f16cce2f7b15e085b56bf54e1895bbd7824d1ddbf481de10d01e5bee7aeaca31c6b8afee7c503","summary":"fix: drain SCIP process pipes to prevent deadlock","tx_id":"aeb4deea-ce6a-458c-bc41-6a3fc4296b95","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-04T04:13:58.679025100+00:00","entry_hash":"fd122001b4c02977ef80ab493340d94239077808c59c83877404a9fa1a9ad7bb","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Adding toolchain: stable to 14 rust-toolchain actions that were missing the required input, causing cargo audit/deny to fail on every PR","risk_level":null,"signature":"e97ca82f9cab4380cc1d429bc05e6df979281ae0a44ba5a352820a7ad52c8a9e6382eb7fefb7f0e6e14be69d306cdc3150287130b7783a910de8d6a38174240c","summary":"Fix missing toolchain inputs in CI workflows + review findings","tx_id":"3b9fac22-eab0-4e4a-8b88-11722e949b26","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-04T04:14:02.820738900+00:00","entry_hash":"762029e8d70f3af48243baab29d00b4adb0b3f0ce9ce8ea4ee1eb755595ff6bf","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"All 14 dtolnay/rust-toolchain invocations across ci.yml, security.yml,\nrelease.yml, and smoke.yml were missing the required 'toolchain' input,\ncausing cargo audit and cargo deny to fail with 'toolchain is a required\ninput' on every PR and push.","risk_level":"HIGH","signature":"c29a6ba05364bf398ca0c0ce74e99b363a2c72ec354a8f7700b4845e2693752aa1c8ba8a5e141a0a14a5bfd76cef3adcd28cce045d5d27a676ac400d9193100f","summary":"fix(ci): add missing toolchain: stable to all rust-toolchain actions","tx_id":"51a7d71a-7dad-453d-bf06-e292caac0e41","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"CHORE","committed_at":"2026-07-04T08:07:42.848644500+00:00","entry_hash":"df13998a0c6fd95b343366f498b22549a30ebccc507df28fc0ce2469c384fad0","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Completes track 0032-UnexposedCommandSurface — all 7 DoDs met, 2 internal review rounds + 3 codex gate rounds clean, 1387 tests pass","risk_level":null,"signature":"b7e14f0bb28e46f6e2483f869e9671792251878c071b715c77d9e9efc0986d41bbec42e1bce0bb439a823f644fa7fb3175c5430ce5f22c044a22817294698507","summary":"Wire 5 unexposed ledger/utility commands to CLI dispatcher: ledger resume, export-provenance (safe-path), hook-repair, openapi, register (internal)","tx_id":"09469637-1229-4232-a204-5c91322c9d3c","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-04T11:04:08.582979700+00:00","entry_hash":"71032c2aadd87ea549b8f9727ba063445f73409f6f57a5349c1f8745a39c0142","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"- ledger resume [--tx <id>] — resume pending transaction\n- ledger export-provenance [--out <path>] [--force] — safe-path resolution\n  (refuse src/, .ledgerful/state/, Cargo.toml; refuse existing without --force;\n  post-canonicalization symlink re-check; default stdout)\n- ledger hook-repair [--force] — repair stale post-commit hook sidecar\n- ledgerful openapi — print OpenAPI JSON to stdout (CLI, not web route;\n  works in openapi-only and web builds)\n- execute_ledger_register marked pub(crate) + #[doc(hidden)] (internal API)\n\n2 internal review rounds + 3 codex gate rounds (all clean). 1387 tests pass.","risk_level":"HIGH","signature":"3ab55b94638ef280f9371b1a263da9da813db3bb54d83b996ba97486dc747bd550e02c508a60096760f421a6ac3c4a3607bbffe6e7a372ec061874de44c8f90f","summary":"feat(0032): wire 5 unexposed commands to CLI dispatcher","tx_id":"d3befcae-dabd-4271-a343-b26e9f856e34","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"REFACTOR","committed_at":"2026-07-04T12:01:39.566591700+00:00","entry_hash":"a62a2bbd50a6a39c3e7075e1b66190b005297ddb99cd25a4f0efd4201a6e2ccd","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Behavior-preserving extraction of shared DTOs and helpers from api.rs and server.rs into a new types module with pub use re-exports; OpenAPI artifact regenerated to reflect moved annotations. Full clippy/format/lib+bin tests pass.","risk_level":null,"signature":"d5872f6944e2cfeca2275f882dfae6de0704eaf05f374fc966ef03a50a0a934fd27d846c7ad242ac7ffba4199256b3377a814882dc0782df28e816f8b371630c","summary":"Phase 0.5: extract shared web DTOs to src/commands/web/types.rs","tx_id":"589dfbcc-9cd7-496b-a3b5-aef4d01dc702","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"REFACTOR","committed_at":"2026-07-04T12:09:32.719520300+00:00","entry_hash":"89a80e98ef515057435a020ce5a4b9f8e398363079675a579d4357adc0a41559","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Behavior-preserving refactor","risk_level":null,"signature":"b321a06b89db8cf58d5d1013ed5a483b0a8fc3f89a2a304c52c56a9953bc514ce83ad9834e78cadf55a0a1d40ee6d3084c0cf13f9c11ae1fcd8a13d9b17ef008","summary":"Phase 0.5: extract web/types.rs","tx_id":"eb695f2d-f3c4-487f-a509-989b453e4df8","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"REFACTOR","committed_at":"2026-07-04T12:36:53.683382600+00:00","entry_hash":"7bc2400ebc81185d9286ec81b68dd37e8830ad535e6eefeee3213478c2588a81","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Behavior-preserving refactor + skip .opencode/node_modules in scan_dependency_dir","risk_level":null,"signature":"4b184e846790a1c3298bc3297528aeb3b8af4ac02770a08846859635138cd29bef272988942cca3ad45e747228bb4ef286cce006e6125e3fe0aaf349ca34a902","summary":"Phase 0.5: extract web/types.rs + fix federated scan hang","tx_id":"a22a4a4c-6dba-4e65-818e-391060a55d2c","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-04T12:36:57.371349100+00:00","entry_hash":"e1bb78af20e65debdb09451ae80422eb8c7b0f8e6c158d9fc78513b39c0137ed","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"scan_dependency_dir recursively walked the entire repo tree including\n.opencode/node_modules (2494 JS/TS files), causing scan --impact to\nhang for minutes. Add node_modules, .opencode, .cargo, .claude,\n.config, .agents, vendor to the skip list alongside .git/.ledgerful/target.\n\n1387 tests pass. scan --impact: 8s (was hung indefinitely).","risk_level":"HIGH","signature":"fdbdc506d5e6ab551895f32d8aa7096cd05d4ef18b618a8162db0ae55c51a7b7bc66672b47a2b924b0bb2a526a3dcb4e57249f4e38792467747bcf4767f15900","summary":"fix: skip .opencode/node_modules/vendor in federated scan_dependency_dir","tx_id":"ea6750ae-9aec-4947-8510-dfd0d14325c7","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"REFACTOR","committed_at":"2026-07-04T16:20:43.820327100+00:00","entry_hash":"58db106ceb64ec68304d0f640c07058c426f7de8c95f8f0e04f82430715086c4","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Completed submodule extraction, regenerated openapi.json, moved tests, fixed feature-gated imports","risk_level":null,"signature":"a6e65f8dbcf390d1a66cafbdd96de90a7661363e9e8afd1cd49fa9cf0000e342397fd3f1d3a6a674553edac3b630f372c7f7b420903cb68d8afab2e90c662d0b","summary":"Phase 2 God File Refactor: split web api.rs into openapi.rs, cozo.rs, dto.rs, handlers.rs","tx_id":"2abc352f-8fe1-4327-8c77-ec6b67fa0cee","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"REFACTOR","committed_at":"2026-07-04T16:20:55.401405700+00:00","entry_hash":"da65e0073dfb76acb68758fd97cbc3ce7be2d02d0b134232d406ff008e1596f2","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"- Extract OpenAPI doc + generate_openapi_json into api/openapi.rs\n\n- Extract CozoDB KG/security-boundary queries into api/cozo.rs\n\n- Add api/dto.rs and api/mod.rs re-exports\n\n- Keep api/handlers.rs as rename target with handler fns + shared helpers\n\n- Move hotspot DTO and KgNode serialization tests into web::types\n\n- Regenerate docs/api/openapi.json\n\n- Fix feature-gated axum http imports in server/handlers.rs","risk_level":"MEDIUM","signature":"23031bca029d4ca8cbe8491ad4255b778d78f122c68f4bda643678392aa98642323ba62fcbd30fad10a34f3cf547ffabc540a83ddc04a26e60d8a8b776932a09","summary":"refactor(0033): Phase 2 — split api.rs into api/ submodules","tx_id":"a5673385-eca3-497e-8c07-57af4c565e00","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"REFACTOR","committed_at":"2026-07-04T17:11:09.738023800+00:00","entry_hash":"10b71b9e0338f4d31233202f0d8f2aa90c804ec4be0b3b543123e5a6678a440e","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"God-file refactor; behavior preserved, public API re-exported, fmt/clippy/nextest green","risk_level":null,"signature":"94b132d3073fbc9b45e2eb389f89e40c5e85bcc9f8c21d0b0ac1534c101536e5363185ddd03766ad6ecf6b27796475dbe89e07077fa23ac4d6018a2488c8080b","summary":"Phase 3: split src/commands/ask.rs into ask/ submodules","tx_id":"d75aeb30-dd10-44bc-82b0-a78dc9e53681","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"REFACTOR","committed_at":"2026-07-04T17:11:16.459114100+00:00","entry_hash":"d393685a878304780434697711ca20761a45d15ec0bbaf397a2afd7e5b34d8ba","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"refactor(0033): Phase 3 — split ask.rs into ask/ submodules","risk_level":"MEDIUM","signature":"d4e7d9ee87f51969eb86e91af5aa40fde4d260fc39bff9b07e15a95d58dc629637ba4dea135da3ece8c1255f0e2bc3b41099862200c9ba9f8edac57b57272e02","summary":"refactor(0033): Phase 3 — split ask.rs into ask/ submodules","tx_id":"a21dc211-a2bc-44f3-932e-1221b8d35821","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"REFACTOR","committed_at":"2026-07-04T17:17:04.247968200+00:00","entry_hash":"5c7ec806decfd1c06854ccd0e4556c27ae03ee3eca3b3e42ab77121829cdb2f5","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"refactor(0033): Phase 3 — split ask.rs into ask/ submodules","risk_level":"MEDIUM","signature":"cf149d97a10a65d26668995600a0039408f2720a367f7f25688f761d467c09ba955907c21c77909769b97a01fd7b233cd685d33be7f36668bb6dd54fc005aa03","summary":"refactor(0033): Phase 3 — split ask.rs into ask/ submodules","tx_id":"f8f4fbdb-5914-438a-a524-db910a3d47a0","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"REFACTOR","committed_at":"2026-07-04T17:37:08.852024300+00:00","entry_hash":"3657d3371ae79281bb6d6ffead39dc76ccfbbd79c52c696f188514fcdee8c517","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Behavior-preserving refactor to reduce god-file responsibility mixing per 0033 spec","risk_level":null,"signature":"ed8934a272ef4bc90fe9a168581af0bb7159906978a43a9f326871374e06a937c3129edcee9ac9d5e231bcd89ec89459423261b01334f7b5626c56c39a839d0f","summary":"Phase 4: split src/commands/index.rs into index/ submodules","tx_id":"f8dfa0cf-2857-4c62-a657-a49c811995c9","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"REFACTOR","committed_at":"2026-07-04T17:40:55.848635+00:00","entry_hash":"84bdc1a7e9e67d1ae41736eacf97d3a4151ce7f7c2c768a14ec5473eb61bb069","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"git mv index.rs -> index/mod.rs (preserves blame provenance).\nExtract 7 focused submodules:\n- modes.rs (453 lines) — mode routing: execute_index/main/check/export\n- semantic.rs (577 lines) — semantic indexing pipeline + dry-run\n- scip.rs (84 lines) — SCIP ingestion\n- graph.rs (61 lines) — docs indexing + contracts\n- output.rs (267 lines) — JSON + human output formatting\n- repair.rs (110 lines) — metadata repair\n- check.rs (87 lines) — standalone index check\n\nTests colocated in submodules. pub use re-exports preserve imports.\nGate: fmt OK, clippy OK, 1387 tests pass. ledgerful index --check: 0 stale.","risk_level":"MEDIUM","signature":"d5bf03e14fbb624a727e3a177f71108843d43992121463365b3ac764ba784b1eccf463b1ef881881141837c4d09e4795062f2a0e54af9f583036dbefc79fc408","summary":"refactor(0033): Phase 4 — split index.rs into index/ subdirectory","tx_id":"2268edf0-eaaf-4cc1-972c-251ea7d41c94","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"REFACTOR","committed_at":"2026-07-04T17:52:40.850886+00:00","entry_hash":"8745f93a11c5181cc6979ce4a786a44ec0d85e64085ae7d7c322c26ca4e147c5","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Behavior-preserving god-file refactoring per 0033 Phase 5; preserve import paths via pub use re-exports, colocate tests in submodules","risk_level":null,"signature":"93ab0f5f9e823e0eb2bc8f7cc7781d4cba986583bdf77d65318837518587892f0e407229680d3711583aaff18297e98d7f9cd3de08c9e2495c57288651a78909","summary":"Split src/commands/config.rs into config/ subdirectory","tx_id":"aa41ca6f-2ed1-498e-9db5-2b99374da9c9","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"REFACTOR","committed_at":"2026-07-04T17:53:10.732513900+00:00","entry_hash":"acccf3c8a2708ec418b7d915b98142c057253174922dfd6107906d9ce031d311","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"refactor(0033): Phase 5 split config.rs into config/ subdirectory","risk_level":"MEDIUM","signature":"1451a0861109e4535b69731f735ca72bbdc560818aaa5134808dd4eeb03d76724261c8c5d270f1ae8ddb47f22d23db71043253a504136fd76c077ec6f5ba3c0e","summary":"refactor(0033): Phase 5 split config.rs into config/ subdirectory","tx_id":"d3c7050f-9591-4597-93f6-9d42615081ae","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"REFACTOR","committed_at":"2026-07-04T18:12:21.226645200+00:00","entry_hash":"683b8b90ce6226f98a31f1441ca020ab55af7f21498792a7f1e3a4507f7d789d","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Behavior-preserving god-file refactor; pub-use re-exports keep existing crate::state::storage::StorageManager imports working; tests colocated in submodules","risk_level":null,"signature":"ac3e1af0c4ea5fd969346abf269881abfff32d8bc39949bd7bc59d952311a55f19c22d43e8b9718ae0bc714f04aa33f2b48877495fa7089ef92c7cad6b098508","summary":"Phase 6: split src/state/storage.rs into storage/ submodules (connection, packets, verification, schema, migrations, ledger)","tx_id":"c2fb21a5-f406-49a3-9dc5-e14407a0db76","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"REFACTOR","committed_at":"2026-07-04T18:13:27.461978400+00:00","entry_hash":"e1021038b992a9843a6a805b8438b500701c100005285a428af2f930db51aca7","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"refactor(0033): Phase 6 split storage.rs into storage/ subdirectory","risk_level":"MEDIUM","signature":"eb846c7f4c0c3b5c602eaaaf35d8f603cdaacd09057818e66459ed3f77a6f4f7526510e6f8fd79913b839b9a841c0b1714f095c938c180630a4d70b08ca37e0f","summary":"refactor(0033): Phase 6 split storage.rs into storage/ subdirectory","tx_id":"624bb9c9-da9c-4b3f-82c8-a64e68af9009","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-04T19:24:35.951150600+00:00","entry_hash":"83fdc534a48fcbaaa761e2e0413d542a7a56fc96bd792dc795d6884b3dbd7051","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Codex review finding: em-dashes/ellipsis/arrows in web handler doc comments were double-encoded (UTF-8 interpreted as IBM437). Replaced corrupted sequences with correct Unicode, removed BOMs, regenerated docs/api/openapi.json under UTF-8 codepage.","risk_level":null,"signature":"e97f5237dc355d07bf8e5c6390592f37bc4f599ec6721e0512482b58da21437e88b7bdd87778a4f1d68844c44d195be4513ea30644fd261db72689b06d317e06","summary":"Fix OpenAPI mojibake in handler doc comments and regenerate openapi.json","tx_id":"469d048e-a654-4ba0-8563-936d2192d8d7","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"REFACTOR","committed_at":"2026-07-04T19:24:36.109486600+00:00","entry_hash":"99c9d57ddc2cc3c0bc9e2866e3a0084bb08ef7c222269a3fdedf2db76d913588","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Codex review finding: add explanatory doc comment above scan_dependency_dir skip-list and add unit test verifying node_modules/ is skipped during federated dependency scanning.","risk_level":null,"signature":"8594d3c9dfdd682f16e3662b70226d315f7dddf27428b10167a10200e501a5edd8e15833f04950764cd6f190bdde6097decba538c830b9456a7a52386b5d3805","summary":"Document and test federated scanner tooling-cache exclusions","tx_id":"53a17299-a2b4-43e8-95dc-60fdbf7665a2","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-04T19:31:39.752775100+00:00","entry_hash":"6e0b965175780fe19b6cb4f8038d69221d63b3377a4e69ac62ea4a39d95766a1","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"God file refactoring track 0033","risk_level":null,"signature":"f64cb2f1d3353d4c901fd733c99604936c80dc12ece356ef0d7c753d7fe85209d57dc1d2ce7c44c7edbdade9edaf08ce6f2de12b1e92fc430cc043debdd0f107","summary":"Phase 0.5-6 + review fixes","tx_id":"be2b825d-1a64-4fee-bbd9-4d0c50ba6458","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-04T19:31:47.695357700+00:00","entry_hash":"a2e77fb65d4564d644d5a5d5cb4d0c63a4a45a661b8ea3ffe11a51c598dbfbfb","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"fix(0033): codex gate v2 fixes — OpenAPI mojibake + scanner test","risk_level":"MEDIUM","signature":"0aceef1e668909a20c151365293ea417a8b667796965d28f460cc4c681965599feb060a945871c875cacfa0cad305289e44d4868f6d16eb5c4bb42fb1d985306","summary":"fix(0033): codex gate v2 fixes — OpenAPI mojibake + scanner test","tx_id":"c4cfdda9-24e1-430e-9ed3-f468c6080380","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-04T19:40:51.120241300+00:00","entry_hash":"3e2114ab262e0594435ae65e309cec399018e29787741d4929f4aec27df5345a","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Behavior-preserving refactor. All gates green. Codex gate clean.","risk_level":null,"signature":"aa00a02edfb298c11facb7b738e7ecaff5d4a73d5ef86fcf5ee7e07e0cf2bfc8d389ac14bf54a7ef17bce270faa6ecf9073677b592a4cdfba1dd51a6267dd003","summary":"Track 0033 complete: 6 god files split into focused subdirectories","tx_id":"abd178fd-0de6-48b5-8f0b-cbaebe853338","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-04T22:49:15.794978400+00:00","entry_hash":"bc1e4a8f0c335f3137a48bcb9d1a18648cd234b0e90f184625752ce3111518bd","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Post-0033 dogfooding found scan --impact silently hanging on large trees; 0034 bounds all hang paths so the scan always completes, progresses, or diagnoses","risk_level":null,"signature":"6b5b2c1508388c75d7f9327693c0a1ae912984a699de80a85996a908b9eeca59138a9b7d218ec026949564e03ef772f0acf98856196db53a0ba678d723075b02","summary":"Eliminate silent-hang paths in scan --impact and federated scanning: subprocess timeout + process-group kill, file-count budget, config-driven exclusions, cooperative backstop deadline, threshold-gated progress, structured degradation warnings","tx_id":"8d59148d-f6e9-4c0a-978e-ce18d13b8928","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-04T22:56:17.669532900+00:00","entry_hash":"9c63de4d2c8563344c59cf10e4e7bde658d13d1ad997f88832ab5124bbe00229","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Track 0034 complete; clearing ledger before starting 0031","risk_level":null,"signature":"4a510068c28e8516b700c237ee9031047cc7fa65c87db7fadb217466247aa99c5ce637852741d3b90d8c3c37627a605f8dff160346628ee42052a03aabbb9404","summary":"0034: eliminated silent-hang paths in scan --impact (subprocess timeout+group kill, file budget, config-driven exclusions, backstop deadline)","tx_id":"4febdcdc-be65-4d9e-b17e-823a27bd4c57","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"SECURITY","committed_at":"2026-07-04T23:21:04.551784900+00:00","entry_hash":"2bced852febff5f434d843c766c45b36ec77fc4cb2db0832395d0fdabc54082d","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Defensive hardening of MCP tool results and LLM analysis pipeline against adversarial repo content; adds deterministic bounds and explicit cloud egress opt-in for MCP ask tool.","risk_level":null,"signature":"12c70cf50989b1cd1f8acc2be537d396ec996cf75d501bf59a65c8bc4807bbc38bf2ad761a1313d1c2b2a69291f5e1ad05db38b484ff1d1d27123130d555580d","summary":"Harden AI/agent boundary (0031): MCP sanitization, prompt injection mitigation, parse bounds, cloud egress gate","tx_id":"08620bdb-be53-44e3-8f61-2934d0462720","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"SECURITY","committed_at":"2026-07-05T00:33:15.943367800+00:00","entry_hash":"50ac57b4993ab3be3ff266ec5b43b763a847a0a35aa307d712e0e12d43378aa5","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Track 0031 implementation complete; clearing ledger before cross-model gate","risk_level":null,"signature":"64db3ebca5aa85a3d7e80d363cfa97c1025e2b6c8490e05da9f25687a49224b678915f032ccca3d7bdbb2bfa669e55a3cdf63f1987545e98518ae4828fd1030d","summary":"0031: harden AI/agent boundary — MCP Markdown/HTML sanitization (split content vs structured), prompt injection mitigation (fence escaping, DATA framing), LLM parse bounds + fail-closed, cloud egress confused-deputy gate (mcp_allow_cloud_egress)","tx_id":"f4a59e77-bd26-4bb4-b158-6ddc1dbfcf37","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-05T00:33:25.367610200+00:00","entry_hash":"1199864350ee4a6164290bb4fbca15737bd6e009209d63c147394373526758af","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"MCP tool-result hardening (DoD-1):\n- New sanitize_mcp_content() escapes Markdown fences/images/links/headings/tables/HTML/control/bidi chars\n- New sanitize_mcp_structured() preserves JSON structure while escaping Markdown in string values\n- text_response uses full sanitize; json_response uses structured sanitize\n- Subprocess stdout/stderr capped at 4MB to prevent OOM\n- Adversarial tests: fence-breakout, image-exfil, zero-width bypass, nested fences, unicode, oversized\n\nPipeline integrity (DoD-2):\n- escape_code_chunk replaces backticks with U+02CB before fencing (prevents fence-breakout)\n- intent_drafter wraps git diff/commit as [Untrusted repository content] DATA with backtick escaping\n- Unknown LLM categories/relations collected into parse_warnings Vec (not just warn!)\n- parse_warnings surfaced in graph.rs\n\nParse robustness (DoD-3):\n- 10MB response size limit, 10k nodes/edges cap, 10k field length cap\n- Fail-closed: parse errors return Err with annotation (not silent skip)\n- floor_char_boundary for safe UTF-8 truncation\n\nCloud egress gate (DoD-4):\n- MCP ask tool forces --backend local by default (confused-deputy mitigation)\n- New config.ask.mcp_allow_cloud_egress (default false) opts into cloud via MCP\n- Trust boundary documented in review.md\n- AI-path claims reconciled (no site drift found)","risk_level":"HIGH","signature":"06d5362fa0dcc361452a94729aff82d30b2cec5a35cbeee08ebaf69511dc1406008d847470decf34232527753a7492adc69ef08651979aaaec93113f21c80703","summary":"fix(0031): harden AI/agent boundary — MCP sanitization, prompt injection mitigation, parse bounds, cloud egress gate","tx_id":"1dd8c19d-40b7-4fb6-9e44-037f2b130bec","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-05T00:38:42.594868400+00:00","entry_hash":"c4a44414bae13295b749fb380cf8f3acabb1ef93b0a887a21569c2dea3859a3a","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"MCP tool-result hardening (DoD-1):\n- New sanitize_mcp_content() escapes Markdown fences/images/links/headings/tables/HTML/control/bidi chars\n- New sanitize_mcp_structured() preserves JSON structure while escaping Markdown in string values\n- text_response uses full sanitize; json_response uses structured sanitize\n- Subprocess stdout/stderr capped at 4MB to prevent OOM\n- Adversarial tests: fence-breakout, image-exfil, zero-width bypass, nested fences, unicode, oversized\n\nPipeline integrity (DoD-2):\n- escape_code_chunk replaces backticks with U+02CB before fencing (prevents fence-breakout)\n- intent_drafter wraps git diff/commit as [Untrusted repository content] DATA with backtick escaping\n- Unknown LLM categories/relations collected into parse_warnings Vec (not just warn!)\n- parse_warnings surfaced in graph.rs\n\nParse robustness (DoD-3):\n- 10MB response size limit, 10k nodes/edges cap, 10k field length cap\n- Fail-closed: parse errors return Err with annotation (not silent skip)\n- floor_char_boundary for safe UTF-8 truncation\n\nCloud egress gate (DoD-4):\n- MCP ask tool forces --backend local by default (confused-deputy mitigation)\n- New config.ask.mcp_allow_cloud_egress (default false) opts into cloud via MCP\n- Trust boundary documented in review.md\n- AI-path claims reconciled (no site drift found)","risk_level":"HIGH","signature":"4db52e51ccb7edfedb4131aab65d6ac0ca61206b985970c043b5cfbcfa40c4ab9c6e439d71a1830214547e2a31f615fbaf9fb3fea2b1b349855ef5ef6d520f04","summary":"fix(0031): harden AI/agent boundary — MCP sanitization, prompt injection mitigation, parse bounds, cloud egress gate","tx_id":"75f630fe-d9e6-4c52-be57-352e519dceb7","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-05T00:38:48.721866900+00:00","entry_hash":"bda9e933b4e7df540098407f332476e795b7bb691163d4628aa7abdcfe3035cf","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"MCP tool-result hardening (DoD-1):\n- New sanitize_mcp_content() escapes Markdown fences/images/links/headings/tables/HTML/control/bidi chars\n- New sanitize_mcp_structured() preserves JSON structure while escaping Markdown in string values\n- text_response uses full sanitize; json_response uses structured sanitize\n- Subprocess stdout/stderr capped at 4MB to prevent OOM\n- Adversarial tests: fence-breakout, image-exfil, zero-width bypass, nested fences, unicode, oversized\n\nPipeline integrity (DoD-2):\n- escape_code_chunk replaces backticks with U+02CB before fencing (prevents fence-breakout)\n- intent_drafter wraps git diff/commit as [Untrusted repository content] DATA with backtick escaping\n- Unknown LLM categories/relations collected into parse_warnings Vec (not just warn!)\n- parse_warnings surfaced in graph.rs\n\nParse robustness (DoD-3):\n- 10MB response size limit, 10k nodes/edges cap, 10k field length cap\n- Fail-closed: parse errors return Err with annotation (not silent skip)\n- floor_char_boundary for safe UTF-8 truncation\n\nCloud egress gate (DoD-4):\n- MCP ask tool forces --backend local by default (confused-deputy mitigation)\n- New config.ask.mcp_allow_cloud_egress (default false) opts into cloud via MCP\n- Trust boundary documented in review.md\n- AI-path claims reconciled (no site drift found)","risk_level":"HIGH","signature":"d43395b81c96f914415f2990b3cc272523db2ea928c4f92fed4769f8f8d8bcffa16d5fe633127439559d2943cf7e9bcf34248b0ed62968e8dfa5b85c47dd9505","summary":"fix(0031): harden AI/agent boundary — MCP sanitization, prompt injection mitigation, parse bounds, cloud egress gate","tx_id":"b9251df9-6b19-4a6a-aff2-1c5ecc972d25","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-05T00:51:25.747149900+00:00","entry_hash":"4919877e9bcb8cf20ba9627215a5529e9beb331954abf6d749e7148d0e6d2c3d","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"MCP tool-result hardening (DoD-1):\n- New sanitize_mcp_content() escapes Markdown fences/images/links/headings/tables/HTML/control/bidi chars\n- New sanitize_mcp_structured() preserves JSON structure while escaping Markdown in string values\n- text_response uses full sanitize; json_response uses structured sanitize\n- Subprocess stdout/stderr capped at 4MB to prevent OOM\n- Adversarial tests: fence-breakout, image-exfil, zero-width bypass, nested fences, unicode, oversized\n\nPipeline integrity (DoD-2):\n- escape_code_chunk replaces backticks with U+02CB before fencing (prevents fence-breakout)\n- intent_drafter wraps git diff/commit as [Untrusted repository content] DATA with backtick escaping\n- Unknown LLM categories/relations collected into parse_warnings Vec (not just warn!)\n- parse_warnings surfaced in graph.rs\n\nParse robustness (DoD-3):\n- 10MB response size limit, 10k nodes/edges cap, 10k field length cap\n- Fail-closed: parse errors return Err with annotation (not silent skip)\n- floor_char_boundary for safe UTF-8 truncation\n\nCloud egress gate (DoD-4):\n- MCP ask tool forces --backend local by default (confused-deputy mitigation)\n- New config.ask.mcp_allow_cloud_egress (default false) opts into cloud via MCP\n- Trust boundary documented in review.md\n- AI-path claims reconciled (no site drift found)","risk_level":"HIGH","signature":"002d6738f87b3c3d6056ffbe5ba8fae1fc1ff2a46e297c3d09fb445908b2ffc576e834e773453866d23b0d8fd49f35cdd2cc52bf949f1e0756a10968d059940e","summary":"fix(0031): harden AI/agent boundary — MCP sanitization, prompt injection mitigation, parse bounds, cloud egress gate","tx_id":"3273c1f9-2cfe-4fa8-8702-4946268a9da7","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-05T02:54:55.798991+00:00","entry_hash":"74fe7cfcef19e8e28a541ee44f2e02ddc3638cdddcd7560fdc91c9bd7e5c18b6","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"feat(cli): enhance verbosity filtering and ledger reporting for Track 35","risk_level":"MEDIUM","signature":"c7e3026344f7e00b4d47bd1c86e4f89c60bdd6443677339509751cb61da231ef828cc13eba70ccd00c7b71208970bd6dd78a20d247c9747370f7713f52f93701","summary":"feat(cli): enhance verbosity filtering and ledger reporting for Track 35","tx_id":"864c38f7-faf1-40f1-81ab-f4fe2d3280ff","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"DOCS","committed_at":"2026-07-05T03:13:23.481828200+00:00","entry_hash":"993843b9c6ac27655a19ad24c6f4318e20697c4856e9d6b7c6e712e397e73393","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"docs(agents): update codex skill with windows stdin pipe workaround and opencode fallback","risk_level":"TRIVIAL","signature":"faa3efdf7a4f29329da9885bf7a69f70d1abbd5b3c599f52040dd8ffe37af70679cfab35c05ea621190e0c3b5a183448a33c9649dd274199651e7b8aed5ba404","summary":"docs(agents): update codex skill with windows stdin pipe workaround and opencode fallback","tx_id":"5fc77181-0bba-4684-9c06-e2864436f9bf","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"CHORE","committed_at":"2026-07-05T10:36:44.131043200+00:00","entry_hash":"acef804911f6752f35b2ceac785f4f8f0b54af5d06b8f4e80774f654a657f7a8","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"chore: untrack local .agents directory","risk_level":"TRIVIAL","signature":"148cd8a5f9dc01fe8aaaab558a33bf221b3c33a21c802e15f519c4007fdfd057c88a01a5efc83844e6e033edaa8e6d7b7ec6a87cd6996bb005298a11a62bd902","summary":"chore: untrack local .agents directory","tx_id":"72419615-9a4d-46e5-95ee-7e614b719d4f","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-05T12:05:34.554477100+00:00","entry_hash":"6989adf93830ec1bc841f8839b40109ac0585b7e69ff54aa213ab810a5416522","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Implement Track 0036","risk_level":null,"signature":"0d6a7f7418fbf5695984a1ac7b72825e6013bcf41288c83976bafb8f5ec6ee9cc48a265002baf4d3ffc532e0d7c04f5e0bd5063711cff9104a5191924fd70008","summary":"Map verify runs to transaction IDs (Phase 0-C)","tx_id":"763d8993-c145-4684-a43c-08fc5517bded","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"CHORE","committed_at":"2026-07-05T12:05:39.184149400+00:00","entry_hash":"ef7a0a35e65f7bd4a8eb14babea3074ebc322db8436c643513c9130715c8b3f4","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)\n\nLedger: 763d8993-c145-4684-a43c-08fc5517bded\nSigned-off-by: Ledgerful Bot <bot@ledgerful.io>","risk_level":"MEDIUM","signature":"afb88c97f900323296fc244bc1ee6f6eb125a7e1e100cd75e86fb45643a04a47b480711c8c1a7ebd866a4b0ce398a3f2dc5fe9db64910610e576b5ae265fc500","summary":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)","tx_id":"8c96a64b-1ab3-4f93-8996-9fce816b38bf","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"CHORE","committed_at":"2026-07-05T12:09:37.004963800+00:00","entry_hash":"1297aa70a8e8a06b5985b9a8a14aec5f9b37df65d36d4fb4b90b04205e21cba6","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)\n\nLedger: 763d8993-c145-4684-a43c-08fc5517bded\nSigned-off-by: Ledgerful Bot <bot@ledgerful.io>","risk_level":"MEDIUM","signature":"7e8ef6da8db60a532d1b046d8dcb0331bd22cc8e0f07469a31b3ff5ec67953d49807ba65a02ebd9eee2b9225ae61d4713db7bfef8ab38f6305bebcd0a0c35903","summary":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)","tx_id":"9ee1e62b-c97c-4edd-93fd-2f2e197f9a0b","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"CHORE","committed_at":"2026-07-05T12:33:33.364374800+00:00","entry_hash":"a11aee4cc8d1592df5c8e0fd7994da150bf27dd0236f5f487f3fa49b511a1ee8","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)\n\nLedger: 763d8993-c145-4684-a43c-08fc5517bded\nSigned-off-by: Ledgerful Bot <bot@ledgerful.io>","risk_level":"MEDIUM","signature":"11916b0c88364461644277eb2b31273d983042a0648ce175a1e4329ef775cd1236db7782155ecf4e8b93981e12f5793256e97ba0820d93a282e69471e8af8f07","summary":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)","tx_id":"ff4c7009-067d-41af-a03f-3ac9e4b19917","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"CHORE","committed_at":"2026-07-05T12:47:58.094732700+00:00","entry_hash":"5924d4779296467888a27863a5140a3619ce9ece5322f139f9127c86ff39a6c0","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)\n\nLedger: 763d8993-c145-4684-a43c-08fc5517bded\nSigned-off-by: Ledgerful Bot <bot@ledgerful.io>","risk_level":"MEDIUM","signature":"d0837b4d8d8bca4de83c92db1a2b3076ddd9ea66cac639472f071c8480745760d765f1a04d377095ff141a2385ba2e1f20876aaabfe4686becb49de6edd0270f","summary":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)","tx_id":"0223833c-d3cb-4c98-af66-1e261e5d3a7e","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"CHORE","committed_at":"2026-07-05T13:02:50.247760+00:00","entry_hash":"00ccfb7a0b570b4938c15885f96d96fe5621c91cb278e0c1fe95c5c3f8e5c9eb","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)\n\nLedger: 763d8993-c145-4684-a43c-08fc5517bded\nSigned-off-by: Ledgerful Bot <bot@ledgerful.io>","risk_level":"MEDIUM","signature":"301d6432d964ce78b6b015276420f5d6ae02786415d0915d2677186335c2217c492b18ae4a53cc613389614fcdc64074a848ce0cc571cdae080ee6c828ea4d08","summary":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)","tx_id":"50e50d93-db25-4faf-bf60-5f4d00d9d078","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"CHORE","committed_at":"2026-07-05T13:17:52.583676900+00:00","entry_hash":"a37e83c403971e8e769757eb39c65a7a4b719dba0e11792d050dd4c5a49f52c8","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)\n\nLedger: 763d8993-c145-4684-a43c-08fc5517bded\nSigned-off-by: Ledgerful Bot <bot@ledgerful.io>","risk_level":"MEDIUM","signature":"7096d8e0a39c0ae967c046af9e717eaa0fc0982442c5d14be2541f995df8514cf837c2bb228f1679d507d037b020f4c642af2d3d3b2935bc8a472f073f91270f","summary":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)","tx_id":"cee4390b-1893-4af8-a7a9-9a0af3af7238","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"CHORE","committed_at":"2026-07-05T13:25:30.512114600+00:00","entry_hash":"6a95802a4632e94133701d1c06c94c5780d637d9261c61923da4bc3bd9fd8514","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)\n\nLedger: 763d8993-c145-4684-a43c-08fc5517bded\nSigned-off-by: Ledgerful Bot <bot@ledgerful.io>","risk_level":"MEDIUM","signature":"13379bfe330752895b091c96afd4c17d8f89872aa4807b7ca737ffec0a90320c30cfc85c5e0bf142ad2b36aca2b8c3d11c5fb8403e2cac1e92cdebf8740cb202","summary":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)","tx_id":"fb9b9e9e-874b-43b6-b3f9-14bae719ca9c","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"CHORE","committed_at":"2026-07-05T13:32:23.285708700+00:00","entry_hash":"abb49b129ab041276b38d5dc0e2c403f30b855fe466a9fbf4ab008264371b82f","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)\n\nLedger: 763d8993-c145-4684-a43c-08fc5517bded\nSigned-off-by: Ledgerful Bot <bot@ledgerful.io>","risk_level":"MEDIUM","signature":"0ba3f977b8ef904421360961347707e16934289c67fb2f48bcb604c97f0a4f8f5286b2adc5f02f5d4486698e5bb1b15437ff4521f8a888f77931ec7920e2da0d","summary":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)","tx_id":"b367bb3d-09a7-4468-b150-626bb2a655b8","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"CHORE","committed_at":"2026-07-05T13:36:39.641804100+00:00","entry_hash":"475b8ba2b817ca7982683779366cde6110a30c723af6972376f12684afff5e7f","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)\n\nLedger: 763d8993-c145-4684-a43c-08fc5517bded\nSigned-off-by: Ledgerful Bot <bot@ledgerful.io>","risk_level":"MEDIUM","signature":"1d7f1149cc31c37971245f0b90b8c6f33f02ac2f0fa14134ce34fde882d0713b646fee0d21c103e8d1c5632a5ced092482f26f1ae7eb6a07189b152af15a6900","summary":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)","tx_id":"796aab91-332f-45e4-8f68-d406d7a74805","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"CHORE","committed_at":"2026-07-05T13:43:24.108744100+00:00","entry_hash":"daf193debb6653da65f0458c8435f363ffc4e4f81871be1a29867622799fc434","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)\n\nLedger: 763d8993-c145-4684-a43c-08fc5517bded\nSigned-off-by: Ledgerful Bot <bot@ledgerful.io>","risk_level":"MEDIUM","signature":"6026558785673b9ea0ded23261b0168ac66d388b914ac23fb53fa222db4421f66658c62293b4c76417145aceda47f397fa1cf81e2b9a12a7d3894d7b18d66b05","summary":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)","tx_id":"c69c7101-858f-4328-936d-e979fea1fc68","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"CHORE","committed_at":"2026-07-05T13:50:32.820229+00:00","entry_hash":"3f9854128325f0cbf3d06dee85ef696560670e6874aba93e9607a8d869295049","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)\n\nLedger: 763d8993-c145-4684-a43c-08fc5517bded\nSigned-off-by: Ledgerful Bot <bot@ledgerful.io>","risk_level":"MEDIUM","signature":"630c8fceb4bb5717617947baa114521c2cf0eea99d17a588d1280441a8b0f28c7760772b0d5a46045b30238d0e5d2e83e5ae6228a3f651a0a7818ac8c4886801","summary":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)","tx_id":"d95d8076-7068-4d06-8f31-fcff3c56da5b","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-10T20:43:44.984518200+00:00","entry_hash":"be5093c7636835d4ca47e5756ceebf4adff64628184e263f7239b69226faca1b","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Garbage collection of stale PENDING transaction","risk_level":"TRIVIAL","signature":"759c0fb2331f067e6ffd34ccd7c3f645bbbb2fe577272908f840652af17d4116c62994989e6570ef6a4da734aa3ad50b59c2f60eb917888ccdd73f72eb297807","summary":"Transaction Rolled Back","tx_id":"133343cc-2726-4529-bd56-79b0ef49b746","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"CHORE","committed_at":"2026-07-10T20:43:53.412737700+00:00","entry_hash":"be182bd6104ed8693eadcadf4e05d79e75732cc8d1af173dd1bc1bdcb83d03e5","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)\n\nLedger: 763d8993-c145-4684-a43c-08fc5517bded\nSigned-off-by: Ledgerful Bot <bot@ledgerful.io>","risk_level":"MEDIUM","signature":"9b1978c46ab399e8257bda3ce0fd6c35f2cc7d29140a4de19978251bec34cf37c4adb3abda439f0d5bcf5675c5222ec793f1573b9de6d040cf23f2da9f379405","summary":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)","tx_id":"9d7c2a2f-720d-4e39-9b4c-0a5ca5747600","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"CHORE","committed_at":"2026-07-10T20:47:15.210559200+00:00","entry_hash":"68d2a7dcf1d96875537c179c721dfb41453be2656790760d6279e9cb62425f27","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)\n\nLedger: 763d8993-c145-4684-a43c-08fc5517bded\nSigned-off-by: Ledgerful Bot <bot@ledgerful.io>","risk_level":"MEDIUM","signature":"a0df27e4abd58c068c39a98b679c7152a3ba123c9289e37edcd44dddce06fd77a22c483a4ef2139170654d06b1e219d049e1c5b578c792dbf41c04d646485202","summary":"[FEATURE] Map verify runs to transaction IDs (Phase 0-C)","tx_id":"7a234744-5638-4f16-a77c-558054695e2b","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"CHORE","committed_at":"2026-07-10T20:50:01.030831200+00:00","entry_hash":"2f73b9ad1a5a6753d9bbad441709a90bd1b30b3910a3cc9933bc052d9a4d0928","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"chore(0036): finalize track - remove debug eprintlns, close conductor","risk_level":"TRIVIAL","signature":"8da7f78117589e793901ad5fa3547439e036979cc24e1c6827d0664cbd97bbb1a3352a09d95b887190f917ead4b2f510e7a5084c2d8889ae4d6022645a7e1102","summary":"chore(0036): finalize track - remove debug eprintlns, close conductor","tx_id":"5d9c1678-8cb1-4526-b827-749ad73bc505","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"DOCS","committed_at":"2026-07-10T20:53:04.495854300+00:00","entry_hash":"11127009cdeae3439c3caa0ecac2edf478e1291fb4542b7eb4db0cc7ca5520f3","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"docs: add verify tx-provenance binding to Features.md (track 0036)","risk_level":"TRIVIAL","signature":"e5364fe30a17cce9292462736d569b3d438d4653b05d144bb5253bce36fc1aeeed14ac21d583cd4cc917bab502a2969044b5ab8db550ba50930ceb96ab350300","summary":"docs: add verify tx-provenance binding to Features.md (track 0036)","tx_id":"338fa0ed-1711-4572-8732-463d9651a1a3","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-10T21:42:51.244538300+00:00","entry_hash":"d62601c03e52f0acb2a9d82d4298e6c4bb0fd40e0362387b0564c57a65925fbd","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Add per-file additions/deletions to changed_files at commit time via shared numstat helper, m48 migration, and API surface (DoD-1..7)","risk_level":null,"signature":"edceeff1cc2db1abd913fab5d0a2b68c7f5e54eca95aaf4299952cb8ba26684760f859e91ec1c1c55d5ef1f699b5bd1980351a0d16659ebba1fd478e95363304","summary":"Implement per-file diff stats for ledger entries (track 0037)","tx_id":"0fcdea9b-a06b-4fd4-b1c6-7aefdb36775f","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-10T22:38:38.164628500+00:00","entry_hash":"e61ac15c214eb78b082c811ff0279dca5a945ed199a4d5097bd5ce7aa1beeebf","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Track 0037: per-file addition/deletion stats computed from committed diff, stored outside signing basis","risk_level":null,"signature":"788e052c3b4cd04b3b8f4428562ac2a383d0e0713847f475ae35540620dcb0721586cc00ff56e1a403071c8752e24d588b06b204b0f8974bb9c0ec93cc06370a","summary":"Add diff stats to changed_files","tx_id":"2ce64741-675d-4d67-ba06-0190ab6e30db","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-10T22:38:58.969547800+00:00","entry_hash":"12392dfb346b0591c85d35d51ded88aa811533166336592cb343aa4a8494e8b8","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"per-file addition/deletion stats computed from committed diff, stored outside signing basis","risk_level":null,"signature":"c5c925fd5005de991d679cd40d6314010674c63e8c048e4dd657df0be71e57ebeb6fb3d14980b315a16271df8c3f71216effc6496a6d9a824fd533ab8377980c","summary":"Track 0037 diff stats","tx_id":"7a71eb91-793a-4837-b068-530f1a9203b2","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-10T22:39:02.875917500+00:00","entry_hash":"9b2e45fe05c1e42a8fa08b9e34640128cc905969063c95d2442ccae3c1eb6b5b","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"per-file addition/deletion stats computed from committed diff, stored outside signing basis","risk_level":null,"signature":"c251ab652582cc3b17ef9e91ef26be2c9dbde4b160c76c1e3d4a9b57e847eb61b971dab6d9e581ad0ef8198ad456f701eec18b9f538015325db66da18f0f5307","summary":"Track 0037 diff stats","tx_id":"a3ec8f72-b985-4bbb-bdd1-b5e2cf5a9710","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-10T22:39:07.508126400+00:00","entry_hash":"3eac4156c62fec6594e7274d55b71697b82007921f778c48c4b90e3ccec41414","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"per-file addition/deletion stats computed from committed diff, stored outside signing basis","risk_level":null,"signature":"1a09b83c7f138d67969cacf62f5407b9e69182b6f35baf070f1075f4a87d07270abba0e6002aff50aa45640ec18e38804a6f4a534560fd1b27f69c93ac912f0c","summary":"Track 0037 diff stats","tx_id":"05d7e97d-665e-4208-92f0-776f40762b95","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-10T22:39:16.184868400+00:00","entry_hash":"7bd527aac14479f127947f2b031b557019257a1864c5ab37db9b16c5e371fb03","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"per-file addition/deletion stats computed from committed diff, stored outside signing basis","risk_level":null,"signature":"058a0229e63970ab0693f5acc55ee1a6c798c7297d567e0e1e6d27a15d5fb397fe112790a29e1924d1748a66a0d409b39da58253db303be1d84fc273ba734e09","summary":"Track 0037 diff stats","tx_id":"7e02f21e-7227-4a53-866c-3d7129d63f1f","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-10T22:39:22.389273500+00:00","entry_hash":"7dec57b785c4c9a1093f948c9122b15ffa2de0a5c8c875d659fead7a3b000b02","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"per-file addition/deletion stats computed from committed diff, stored outside signing basis","risk_level":null,"signature":"c69e08fdb2f2080fe85421c073f7714ddee5a38052343d46ac9bf24b2b1a98218162dd4bf3cc7648f079fd7f1b22e7605a05840ea374c0cea0706152f4a3340c","summary":"Track 0037 diff stats","tx_id":"0449ea9a-23a9-4cad-bb7a-a787f9eeda74","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-10T22:39:38.491378300+00:00","entry_hash":"b7394be485747a8a09779c9d31546ab7c502b55107f464c62c9a572e94159314","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"per-file addition/deletion stats computed from committed diff, stored outside signing basis","risk_level":null,"signature":"44cfdca00863676f05e9cbbf4970eab978f9ab9873728ce6a7ec491cda2d1d9300ca2f041fa6617fc5768346c9310defe38fc030f5ac0f813152262181fccf05","summary":"Track 0037 diff stats","tx_id":"1ac7877f-7e15-4759-9032-9c420707e5fa","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-10T22:39:43.063685800+00:00","entry_hash":"2a0fcf742e6023eab6729c9dd73e8968510dce6efe67ab4cf2959cb5582bc83a","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"per-file addition/deletion stats computed from committed diff, stored outside signing basis","risk_level":null,"signature":"90eab72045f0197b3456605436762965b2ce0f394419c1d1abbaf7ed930565b87203731fd6a37cafbe8f1efdfb1fe97f4911f16fcab383e7bb508e42b9fce205","summary":"Track 0037 diff stats","tx_id":"4f4ed99c-e696-4dfc-bb25-b310b6bf8ed4","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-10T22:39:47.609084100+00:00","entry_hash":"8aa6a4d07f70757331e81b8ba39c189afeffac5837b0697bb666522032086476","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"per-file addition/deletion stats computed from committed diff, stored outside signing basis","risk_level":null,"signature":"a26be4e057d23510792009c0307764598dfc96caccbdb865185f91391c442d2335e17e01a08107449c2490f7447bc5ebb2b2850cafc5836cf77c9620e8755b0f","summary":"Track 0037 diff stats","tx_id":"3f9c8762-6000-4cc9-86e1-e832686cfdfb","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-10T22:39:52.666806800+00:00","entry_hash":"cd5c7d23291565410108564126e7fcbfd70c6556f9244ae95cf3632530d21652","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"per-file addition/deletion stats computed from committed diff, stored outside signing basis","risk_level":null,"signature":"7a1d4c61276add932f0db2ac48270a8bd5052b2837ec30c509de6e717e9cadb44f8a9c6130b6bc1fbe2313cd0c9e843c03d2f683ad68714db1ea8cf6f0fe8307","summary":"Track 0037 diff stats","tx_id":"2581ce29-f056-4a83-850f-bfbc618bbb12","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-10T22:40:06.754637400+00:00","entry_hash":"3c213b171356a32f2610b762a89f4138da21ba6a19c55cb82814bd43f664eb02","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"per-file addition/deletion stats computed from committed diff, stored outside signing basis","risk_level":null,"signature":"d4f9dfe120e2447532ff71d1287564dfcdc556ba39608fa556bca2c91eeeb061e9dc6a188a3e67f260553397e0126fffe2777aebcc39ff43c8ce6fc5516ec90f","summary":"Track 0037 diff stats","tx_id":"82b87a0b-fc7f-402a-a846-8098721a1549","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-10T22:41:13.270851+00:00","entry_hash":"b1b4e7ab79b14482a0028f623ea9458d354b3d5df3cd4dfa56f1ed86c4237aaa","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"per-file addition/deletion stats computed from committed diff, stored outside signing basis","risk_level":null,"signature":"53c00ee0853835eca0d57f5beb8fabb86450af4cb06ad39c95e7da864dc44960c014430691dc2906099c5d1c0c3b61930a1f48590a6dd4dbdc29b49e30ef9d09","summary":"Track 0037 diff stats","tx_id":"3b25feb7-2414-4c03-bbf3-3bceb814e403","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-10T22:56:35.107176700+00:00","entry_hash":"d3bc642848e83467cf3f6cdcdb3d3270756f25f3b60f816c5cd70192eea2ecdc","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Rollback due to promotion failure","risk_level":"TRIVIAL","signature":"7533c132df20d81d105e061815866eea6d5ea9ac7f5df1bd623f49d329b1072566b4435057fb4997c9477cf5a46b709cca7665e6ff5d5313a7353468cd664302","summary":"Transaction Rolled Back","tx_id":"1737acfd-b41c-47db-86dd-8c2b4839ffd5","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-10T23:09:23.802203200+00:00","entry_hash":"6d4b4d81f4f01f98ce14ef0f859b713c34ec2128ab4c460bfc3ee3aa6d085b14","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Rollback due to promotion failure","risk_level":"TRIVIAL","signature":"89fd755064e9810db78b50f81c76d31eeaf7f95c2c15fc026f0f824a77c188ca43385d326cc2c462bc925fcb5d96fe2e87e183ad34ce9591524b8130460e180c","summary":"Transaction Rolled Back","tx_id":"b652850c-d6d6-49d8-9881-5f4f11b4eb37","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-10T23:36:52.828580500+00:00","entry_hash":"ddeec17590a67124a7540cdb21ded44f574cf0f56c9d40cfb7dab8e9fd8d3ee8","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Rollback due to promotion failure","risk_level":"TRIVIAL","signature":"b1e5649488e51d106c4f16126e58e5d149fba3184d6fb0e59c9577619d53d51d3c2fbd97c4fd8f479db17b2664290f6bb5513a9db68c45beede3c8e1323d8f06","summary":"Transaction Rolled Back","tx_id":"7b24bff5-03a6-4c86-a5c6-d70da4a5ecf1","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"DOCS","committed_at":"2026-07-10T23:47:14.043126200+00:00","entry_hash":"f8a044cd3ebaaf2d13c297b904377fd0d462691d4b99ad81aa25e6553f1c31c7","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Track 0037-LedgerDiffStats complete. All DoD met. Codex final review clean (0 findings). Frontend type regeneration deferred to ledgerful-frontend repo.","risk_level":null,"signature":"54c60404677ef478004f20a0c7cc4d1c7f76aa4e81ad95d920a7e240a4ad86f3054101256218d35ca18f1cc28b5b7e8cea5a78f410e94ccf4310076dd743be08","summary":"Finalize track 0037: review.md, conductor.md Completed, deferred.md cross-repo frontend follow-up, fresh clean codex gate PASS","tx_id":"d227b12f-3d41-43b9-bd8f-4ab8b21ae96b","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-11T00:31:39.436001900+00:00","entry_hash":"f6212b97e55975beca87888deed88cf8002862ccdc5bb56888201ae67eef631a","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Rollback due to promotion failure","risk_level":"TRIVIAL","signature":"c8b309b1b493dcf9efd72af4968fd080928f17aaafde3a9052ff3a937d2386ef8e282c09bfbe8c42c646137841e5098c8d68c8dc213a474cd8b6f9a12140ac0a","summary":"Transaction Rolled Back","tx_id":"c56800d5-810b-4b00-817b-f3a545909f2d","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-11T02:49:20.066099900+00:00","entry_hash":"5cd23fac865af5d5d81346ecdf2918a001a336fcc9e909a3c2ce3be9e86f6615","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Honest-zero #3: dashboard fetchTrends() was a mock returning empty array. Now the backend serves real project-level trend data from a precomputed rollup.","risk_level":null,"signature":"555f4ba1d3f5abea50bd884b440ba572fc7f8022d43884c4bef496668d137127cc557cd6d3539b328c16305378c85e526b652b998d4100b02e1e143011a44109","summary":"Add GET /api/trends endpoint with cached daily rollup (migration m49, project_trend_days table). Rollup populated incrementally by post-commit hook + bounded 90-day catch-up. No per-request git walk.","tx_id":"e67159b5-5f15-4895-b08a-c80d26101456","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-11T02:49:31.409230300+00:00","entry_hash":"47c1c30f57dc06e691921abc346f8577ef6533b1fb3b724e79279f041a2bd52c","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"- Migration m49: project_trend_days table (day TEXT PK, score, changes,\n  high_risk_count) — m44-style, idempotent, unconditional\n- Post-commit hook: upsert_project_trend_day aggregates the latest\n  hotspot_trends snapshot for the UTC day into the rollup (Rust-side\n  normalize_score log-scale transform, clamped 0-100)\n- catch_up_project_trends: bounded 90-day idempotent backfill from\n  existing hotspot_trends data (INSERT OR REPLACE on day PK)\n- GET /api/trends endpoint (web-gated): returns TrendsResponse with\n  TrendPointDto (camelCase wire matching frontend TrendPoint)\n- Tests: 8 unit + 3 integration (empty/populated/off-by-one)\n- coordination.md: §3.2 updated, §4.10 added, §11 changelog\n- Codex cross-model review: 6 rounds, final PASS with 0 findings above LOW","risk_level":"HIGH","signature":"2e0ac5ef50b012dfcdf74af3bf380a2d95ed727f2a7ae5d68d669192b52cbd82d8deac1a88e7f3a114f6be519e4fa9eba0af9d80774f94a2ae4cef7cc6a2b005","summary":"feat(0038): project-level trends API with cached daily rollup","tx_id":"ba1767b2-9698-40d9-8be8-9f9a8677c9e7","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-11T03:13:39.026394100+00:00","entry_hash":"d8ae43d9dd37f0fe4bdc39e4e04a77c8a343e1380fbe976a51de3e0cdb7cc667","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Record start of implementation for gate mode feature","risk_level":null,"signature":"8b2978c74caa55ad1d910fb3290c6000e613614ab560eb2f9068b7751a8d3d8af5130c12ad85777af2478e0ca84e3e97744c858af515088098430ac5e4155901","summary":"Start track 0050-ObserveEnforceMode: gate mode observe/enforce default and init next-steps block","tx_id":"ca04de47-8953-4446-9f11-63d9a5f8c219","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"CHORE","committed_at":"2026-07-11T04:06:52.446261500+00:00","entry_hash":"5dbd3412bcc60e0b961481002ffa59a8502ce1d2c107bbfb2afc3d713230ab1d","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"test","risk_level":null,"signature":"e4f0c63b15d7d931c17679df4cc58973b9881d631754125bfbaec17f8aaa513f4429a8e225d7b3112723552d39c7101663445435d5619b8b817c1c2d5dbb4c05","summary":"test commit","tx_id":"20e0af5e-aaa8-44fc-80e5-5f3454a31e4b","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"CHORE","committed_at":"2026-07-11T04:08:37.660559400+00:00","entry_hash":"1bf9694c449415e07ba5ccabb8e55e22cf02d2d7640dd7ee5d211c6bca12182d","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"test","risk_level":null,"signature":"e1a921dbd02d8b736a3a466a818446c6d90db464a6b9db3c53164228363ecf94b729378755eddde3c825da8c81a511004611da8a82180d25e9a10639d670e402","summary":"test observe","tx_id":"acf7f081-a673-4fef-b466-ff7393b929dd","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-11T06:50:30.324325700+00:00","entry_hash":"2f5b16dd0dbbf63604b44c082d757519ebd461dd4a9b59c03d3a1c373fd256c8","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"- GateConfig (mode = observe | enforce, default observe)\n- ledgerful init --enforce, ledgerful gate mode observe|enforce\n- Mode transitions write signed MAINTENANCE ledger entry (atomic: entry before config)\n- Observe mode: block conditions route to WARN, no blocking exits\n- observed metadata marker on entries with warned conditions (unsigned, outside signing basis)\n- observe_warned flag on TransactionManager, propagated through sidecar\n- Migration m50: observed column on ledger_entries\n- Doctor: config/ledger mode-mismatch warning\n- SOC2 export: four-field mode disclosure (reported mode, transition history, chain status, completeness)\n- Init status block: deterministic hooks/keys/mode/model/next-steps\n- 6 integration tests (observe/enforce, fidelity, observed marker, transition entry)\n- 12 codex review rounds, final: 1 low deferred\n- 1459 unit + 547 integration tests pass","risk_level":"HIGH","signature":"36b55cca07e88632c1f9f04b24a3d5f517e9a5ebda48bfa31e8371b67419c4c33705ecec462b53235bb28836e4b2f20c80052c7a02a63e257ae7934c9f9aba0c","summary":"feat(0050): observe/enforce gate mode","tx_id":"d66979ea-c5d9-4b97-929c-80c317be8d1f","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"ARCHITECTURE","committed_at":"2026-07-11T09:31:31.576184900+00:00","entry_hash":"5edea2ae369ea34dc7f83437375f35b137bcbd018e41779412b643f3133a23ed","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Implement prev_hash column, chain hash linking, verify chain integrity, re-sign command with single maintenance entry and CSV export fix.","risk_level":null,"signature":"dc4e5f2765b012c6fd81d99a08ad446aadc84305a5460e6d4230b8a2b7672cebb281d79bb087f13d22ede9b1de13a965e3bb73eedc00fade2436d4e6347bd306","summary":"Add ledger prev_hash chain integrity and re-sign maintenance","tx_id":"f71549eb-35ea-40ee-b03f-0dd4bf5815ce","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"ARCHITECTURE","committed_at":"2026-07-11T09:45:04.136931600+00:00","entry_hash":"b5ad62cae7bd59bccd9097228f73ebeaa764220b6eaac50a83c47fc36268f3a3","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Update tests for prev_hash CSV export, re-sign maintenance summary filter, get_related_ledger_entries prev_hash column, and security boundaries empty-state after seeded mode node.","risk_level":null,"signature":"bf3b443240057c476927ea8318b9ed5f35010554607d1cdee847b8aba1be3d9b4293b2adb6b450eed870c90275c8cef1f7734357ed9f8f75cdda7cdcc73bd10a","summary":"Fix chain integrity tests, related query columns, and empty-state expectations","tx_id":"bcdd62a7-ac8b-471b-80a5-e263f5dff8a0","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"SECURITY","committed_at":"2026-07-11T10:38:36.540849800+00:00","entry_hash":"3ff4ee51b943f9a6349c9e159d8d532f11509707830acd97c3c0b82ff1c1dc1c","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Fixes R1-F1 through R1-F12: tests for concurrency, downgrade, export rollback, tamper; CAS guard compare; determinism; docs; banned terms. Full gate passed.","risk_level":null,"signature":"b03c3b5df0b92eb1b6d06db840e8649a4944cf526a6e80ac9904bbaf279bd6b1a04380cb7f25561b46e685b79e0a2ff3a75531e31eccd62e39b8bfa59c2b2109","summary":"Address 0046-LedgerChainHash review findings","tx_id":"a3442a25-4950-401a-8359-93ef42af89fe","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-11T13:29:09.411310+00:00","entry_hash":"6b4da244b63bcc7223cd5d43d039d08c025c4e6bc6892136d6019784960c69e7","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"- Migration m51: prev_hash column on ledger_entries + chain_head singleton table\n- Chain hash: SHA-256(tx_id || signature_hex || prev_hash) per entry\n- Signed chain head: binds (latest_entry_hash, genesis, length)\n- CAS: conditional UPDATE with row-count check on chain_head\n- Canonical ordering: committed_at ASC, tx_id ASC in all entry queries\n- verify --signatures --chain: full-linkage walk, break localization\n- Fail-closed on downgrade: stripped head + entries with prev_hash\n- verify --against-export: rollback/tail-truncation detection\n- Orphan head detection: empty entries + remaining chain_head\n- Pre-chain ledgers: benign (no prev_hash, no head)\n- SOC2 export: chain_head.json + prev_hash in ledger.csv\n- Mode disclosure: real chain continuity status\n- Re-sign: new chain segment + MAINTENANCE entry linking old->new head\n- signing_required threaded into chain head signing (graceful degradation)\n- 7 codex review rounds (final: CLEAN, no findings above LOW)\n- 1459 unit + 560 integration tests pass","risk_level":"HIGH","signature":"540e85710557c3fd3f00385a8c5de6ae1ba812c99a7d748cb1d63b0d5fccc8766c07e459df2fbfe20cdbcd2ac51d0c8301beb0b617bbc9d756cdac514fbedf06","summary":"feat(0046): additive ledger chain hash (Option A)","tx_id":"8c3a67c6-8235-4174-99ad-ba1d8207266c","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-11T15:01:03.174989300+00:00","entry_hash":"b267efdcad9b4b76aa9e34166402dcfa471fcab35b054166eadc2b1c90aa82a7","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Add export cargo feature, expose export module unconditionally, wire CLI dispatch with 0032 path-safety, add parity/path-safety tests; no-web build compiles and full verify passes","risk_level":null,"signature":"32723723b99ed2b85dd2a8eaadbbb9b409e8c4831e04fdde73b90087cf1d016ba4eef76c6648fcd177fd3c2f5bc784c7b9aa02baed68169799fbc776ef1da60d","summary":"Implement Phase 1 of Track 0039: export evidence --profile soc2 CLI command","tx_id":"ee4e50ab-8f26-4170-9e44-673564e0c6ad","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-11T15:02:11.142860800+00:00","entry_hash":"11185e2c0977b81ebba00ba29e2d71c519afe04a27f8ea5c63de805c61946215","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"New 'export' cargo feature (in default + web) makes the SOC2 export\ncallable without the web feature. 'ledgerful export evidence --profile soc2'\nwith --out/--force uses 0032 path-safety (canonicalize, symlink re-check,\nrefuse src/state/Cargo.toml, refuse overwrite without --force).\n\nTests: 8 integration (parity, CLI/direct/web comparison, path-safety,\noverwrite refusal, symlink re-check on Windows + Unix).","risk_level":"HIGH","signature":"1966fc2423a29de19983c8b338c3165a4d2df515c392eae90f8856dd5eb9cc130a6a8a17c29f54d9a915359386e04d1b368bbff79a5f87f1e9cd0c9b99f3a500","summary":"feat(0039): export evidence --profile soc2 CLI command","tx_id":"c787fe12-6ef7-44a8-9258-ecff62247927","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-11T17:41:43.811597100+00:00","entry_hash":"901a5621d721f3959080c837b6c4dc06202c08c90ced69470720b070aee8d83b","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"First-class 'ledgerful demo' command: creates a synthetic invoice-service\nrepo, runs the real hook flow through 5 commit cycles producing real\nEd25519-signed entries from an ephemeral keypair, runs verify, and exports\na self-identifying DEMO SOC2 evidence zip.\n\n- Ephemeral keys via HOME/USERPROFILE redirect to demo dir (0015 DI)\n- Repo-local git config (user.name/email + core.hooksPath) for isolation\n- DEMO marker: manifest demo:true, index.md, filename, entry summaries, stdout\n- generate_soc2_export_with_options(layout, demo) for demo vs real exports\n- 8 integration tests: hook-fired, keys-sentinel, manifest-demo, keep/cleanup,\n  force, git-config-unchanged, stdout-markers","risk_level":"HIGH","signature":"a601d9469ba59ffecd3439daecfa95f9f40edbf2e6498b9a37b71ddae1c754cac7ded7c88b7278c49b30129b2eef7d3f6bfe8cf66faaac96e8722d3ac5deb307","summary":"feat(0039): ledgerful demo command with DEMO SOC2 export","tx_id":"6a72d2f5-b0c8-4701-b0e0-2797fea8e1bd","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-11T17:41:58.803267800+00:00","entry_hash":"30de4cd016812549c11fe8d6f3d52d1de9a76ec145003c24a94c4a6e71ef106d","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Track 0039 Phase 2: first-class demo command with ephemeral keys, DEMO markers, git isolation","risk_level":null,"signature":"184fce62977537d9527607e5029948553b10a83396506acd42c8c6d5cee7ac882bd601a436ca8840d2c7c55f50681c76ab8ce08b7c71e98e1915997118f8120a","summary":"ledgerful demo command: synthetic repo, real hook flow, DEMO SOC2 export","tx_id":"b68db9da-d274-4acc-b194-67ff8fd963f9","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-11T17:42:02.012544+00:00","entry_hash":"3061b653f64deae697a94b4a8896ea3ff50c469792e7ca23d46dfafbdf1d6572","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Track 0039: closes launch demo gaps per research5 2.2-2.3","risk_level":null,"signature":"def37219d795e4d2b204c6b95bc7ee6d44d005d3068636d41cb54af1a4db2b2eaa2e994695fb8df10731230d7d8d20f52c43bb80cba5086a75ea09836ce48c03","summary":"Track 0039: DemoPathAndCliExport — demo command + CLI evidence export","tx_id":"778b756b-9dce-4030-98fc-17c29a3ec8c2","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"DOCS","committed_at":"2026-07-11T17:42:26.667738300+00:00","entry_hash":"cc84bbf5b892d646fd0f353a402b7061bb6dfbe0b1de523e3f7933a5087b33f5","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"docs(0039): add demo + CLI evidence export to Features.md","risk_level":"TRIVIAL","signature":"10d9c22ab7cb4ade176caf7bc3d8e71cd1a6ebcb8b86378b879f29456cb6e2c08eca128ced57fa021e08042ddda5c9ad43a958868f55d40cb093c0c37fd57702","summary":"docs(0039): add demo + CLI evidence export to Features.md","tx_id":"f09052ab-3a7e-4d0a-997d-045d6dd86025","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-11T17:54:36.690979600+00:00","entry_hash":"7f22800a2649f4ff95aa60e41dfff65549cc6cc78a1adcaa3194d000b1238094","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Review fixes (4 HIGH + 6 MEDIUM + 2 LOW):\n- HIGH: dir_is_non_empty now counts dotfiles (prevent destructive rm of .git)\n- HIGH: wall-clock budget test asserts demo completes within 90s\n- HIGH: dashboard instruction uses correct 'cd <dir> && ledgerful web start'\n- HIGH: verify instruction only printed when --keep (export is cleaned up otherwise)\n- MEDIUM: manifest demo field uses skip_serializing_if (no schema change for non-demo)\n- MEDIUM: [DEMO] prefix in conventional subjects so ledger summaries carry marker\n- MEDIUM: use std::env::current_exe() for verify subprocess (self-contained)\n- MEDIUM: ledger.csv [DEMO] assertion + wall-clock budget test added\n- MEDIUM: README.md commands list updated with demo + export\n- MEDIUM: gate mode notice clarified (enforce doesn't block well-formed commits)\n- LOW: SAFETY comment expanded for subprocess env inheritance\n- LOW: modify closures use into_diagnostic()? instead of unwrap_or_default","risk_level":"HIGH","signature":"806af69c7ab9954fce1189b5196dc9d355d60d16e5022074de245bd352a5362aed9eb95b713a583f3a35f3d5d17b3c74bb3c228b214c5e84ed71ce7abcecb00c","summary":"fix(0039): address review findings — dotfile safety, DEMO in summaries, wall-clock test, correct commands","tx_id":"30cd9c50-2b5f-4a86-bc45-a1b0f2c82c2e","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-11T18:07:15.348273200+00:00","entry_hash":"a8879f8dfdbb02a50969b109ae23c06565775f02c0efe4bbd2e90d54191dcc6a","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Codex R1 findings (4 MEDIUM):\n- Use observe mode (0050 default) instead of enforce — shows real onboarding\n- Don't print 'ready: <path>' when cleaning up (path no longer exists)\n- Prefix verify output with [DEMO] for self-identification\n- ledger start → git commit not needed in observe mode (hook auto-drafts);\n  removed unused DemoCycle fields (entity/category/message)","risk_level":"HIGH","signature":"11d2ac9a0b8b4b6eb3f812b9985fce10e310ef4149b942bf25837b7883f2ba5961902c20f2801423d619ce9d822a9b65eb9dde30fcafbafb72716bc7289e700f","summary":"fix(0039): codex R1 — observe mode, verify DEMO prefix, no ready-path on cleanup, ledger start not needed in observe","tx_id":"4b3846f4-972c-42d1-bfe1-d53cb331cc1f","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-11T18:14:21.548880200+00:00","entry_hash":"5198f897e581a22845ae41a0d950caa4a78eb1311acbe96cad4b63f435451cdb","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"- Write .ledgerful/DEMO_MARKER so web UI can self-identify synthetic repos\n- Document verify non-zero acceptance (synthetic repo can't pass cargo clippy;\n  the spec's goal is populating verification_history.csv, not passing verify)\n- Test asserts DEMO_MARKER exists with --keep","risk_level":"HIGH","signature":"610e5ad7e033781dc941646ec296df4be3c6581a679fd34df2a28e123241fe9314e4fa5b151185633b6b9d2e4e25a7c428a66522498de69c169acba5c7e6f909","summary":"fix(0039): codex R2 — DEMO_MARKER file + verify-fail-closed documentation","tx_id":"e5e3cc52-06a0-496f-90d2-623ae1e132b5","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-11T18:20:30.745377900+00:00","entry_hash":"5f72e7ccc99561bbd2e57ff5b703eece68e97846b62b832c0adc2c7e6dba3c25","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"- Export CLI + web handler check for .ledgerful/DEMO_MARKER and pass\n  demo=true when present — prevents synthetic evidence from looking real\n  when a kept demo repo is later exported\n- Verifier command includes 'cd <demo_dir> &&' prefix so it targets the\n  correct repo when run from the original cwd","risk_level":"HIGH","signature":"023c7b0578d2d59e45b3225f5dc6535a302c375f095cb9d5faccf9c90ccd9a685391710545f4db563acaa55c08486d552fcb3fa7c604b813e8ae3ff1d01f7501","summary":"fix(0039): codex R3 — auto-detect DEMO_MARKER in export, fix verifier cd prefix","tx_id":"277acf76-fc46-47cc-9207-93c6e4fac5cd","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-11T18:28:16.633233900+00:00","entry_hash":"9c538c4ed6c53236dfc1bcd479db6a822d16cba5ac126c6d46e3f4b17a00cf1a","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"- generate_soc2_export_with_options takes optional keys_dir; demo repos\n  pass <repo>/.ledgerful/keys/ so re-exports use ephemeral keys, not\n  production ~/.ledgerful/keys/\n- CLI export defaults to ledgerful-DEMO-evidence.zip when DEMO_MARKER present\n- Web handler uses DEMO filename in Content-Disposition when marker present\n- Demo run_export passes repo-local keys_dir explicitly","risk_level":"HIGH","signature":"ccf97dcac977969c3e9ec18f2ec0a8e02a6002a6aaaa602b5a4a6ac17f8ac8f88d900bd3b1b26140cd6f7b5c7f29bdf52986b0ad7567f0568e0837531c264604","summary":"fix(0039): codex R4(f) — demo-local keys for kept-repo exports, DEMO filename","tx_id":"1f10739c-4faf-402c-8943-484177634c99","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-11T18:40:04.439832500+00:00","entry_hash":"a30948752d6e9515868704678e0aa157a321164d4ba6a929c417a686295e39b0","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"StatusResponse gains is_demo field (skip_serializing_if=false) so the\ndashboard can render a DEMO banner when the repo was created by\nledgerful demo. OpenAPI spec regenerated.","risk_level":"HIGH","signature":"1c08a4e72ff5ab76bac49f8985830303158a90a0b25280e47853257044f54c37bce74967bdbe106cb9001ce5b1d2569ea598dbf7c66f1f3604f37ba3b63ed90c","summary":"fix(0039): codex final — wire DEMO_MARKER to /api/status for dashboard header","tx_id":"a87fd63c-07a2-45c0-a039-9811abe9df2d","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-11T18:50:20.111749600+00:00","entry_hash":"35a4a454d853d199bdd9f13c1bd8fb75946028710f1670f808f301df2244d6f6","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"- Scaffold commit subject now includes [DEMO] so all demo-generated\n  ledger entry summaries self-identify\n- Test asserts ALL non-system rows (excluding gate-mode init entry)\n  contain [DEMO]","risk_level":"HIGH","signature":"d10614422ca5245fc11b7e0532b0dea4ea959871e59b76d96c23449c279761d2d54f654c27f3d36256a840ddcf4866521f58d5c799b972e3ecc0cd14ebfd0205","summary":"fix(0039): codex clean — [DEMO] in scaffold commit subject, all-rows test","tx_id":"47feda60-63c2-4fd8-bdec-6a24f4174d42","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-11T19:02:19.760995300+00:00","entry_hash":"13e84ba8405fae5100d810ec2bddfdaa1d5a7832198e1d2a1a0168c22d42824a","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"fix(0039): codex final clean - gate demo export, add is_demo status test","risk_level":"MEDIUM","signature":"ba680580e323e66ff774a841119dc4d6407e21ca70d08bc542a08b81b8691b4f8f3ecf562345954bfb295a42b56ca963015124371a8905965d094ae0222b2c0f","summary":"fix(0039): codex final clean - gate demo export, add is_demo status test","tx_id":"095a5685-fdff-4f98-a885-81b1acaa1d9b","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"INFRA","committed_at":"2026-07-12T05:36:28.966417200+00:00","entry_hash":"b0142e79fd26dd9b0ef727be5fe5bdbdc67b469b192f9c093b3eba75d5c7e396","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Verifiable end-to-end release integrity: per-release SBOM (absorbs E4-SBOM), cosign keyless artifact signing, SLSA build provenance, SBOM attestation, and cargo auditable embedded deps. Post-launch supply-chain hardening, not launch-blocking. Phase 3 attestations gated on public/Enterprise repo.","risk_level":null,"signature":"1756584a016e984f72be6f96205830c84c428f686fc89e18feb25fddbcd720160d86aeb24f05787a73b914ba915d3dd39fde88be79007e6e8b4270b4db2e930a","summary":"Track 0053: supply-chain attestation pipeline — CycloneDX SBOM, cosign keyless signing, SLSA build-provenance via actions/attest, SBOM attestation via actions/attest-sbom, cargo auditable builds, SECURITY.md supply-chain section, release-notes template. No Rust source or Cargo.toml changes.","tx_id":"ca21d055-d3d8-40ee-b4c5-652ac0250f7b","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"CHORE","committed_at":"2026-07-12T12:43:32.375719600+00:00","entry_hash":"aa78092b770bab5854931df22814151a84fede56cf0665283e973452ac58b374","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"v0.1.8: track 0053 supply-chain attestation, docs refresh, action/ removal\n\nTrack 0053-SupplyChainAttestation (engine slice):\n- CycloneDX SBOM (engine --all-features + MCP npm), schema-validated\n- cosign keyless signing (archives + SBOM + .tgz)\n- SLSA build-provenance via actions/attest in build matrix\n- SBOM attestation via actions/attest-sbom in sign job\n- cargo auditable builds on all 4 targets\n- SECURITY.md supply-chain section + RELEASE_NOTES_TEMPLATE.md\n- All actions SHA-pinned, permissions least-privilege per job\n- Phase 3 attestations gated on public/internal repo visibility\n\nVersion bump 0.1.7 -> 0.1.8, crossbeam-epoch 0.9.18 -> 0.9.20 (RUSTSEC-2026-0204)\n\nDocs refresh:\n- CHANGELOG.md: [0.1.8] section with all changes since v0.1.6\n- installation.md: version examples 0.1.5 -> 0.1.8\n- api/openapi.json + openapi.rs: version 0.1.6 -> 0.1.8\n- architecture.md: data flow + command responsibilities updated\n- breaking.md: rusqlite 0.39 -> 0.40, gix 0.81 -> 0.84, nextest commands\n- AI-CODE-REVIEW-PROTOCOL.md: fix crypto path refs\n- Ledgerful/skill.md: regenerated from internal SKILL.md\n- init.rs: fix dangling docs/testing.md -> docs/Engineering.md\n\nCleanup:\n- Remove action/ (initial-commit scaffolding, track 0047 belongs in\n  separate ledgerful-action repo)\n- Remove review.md (stale track 0036 artifact)\n- deny.toml: add MIT-0 to match about.toml\n- Delete output/ scratch dir (gitignored)","risk_level":"MEDIUM","signature":"9239a5ba164892d3eb65fe2c3b519b3499ca4785cae6839e0a3e494e2129c9fed7f1c81445d85f4bea260ec4d7f282cd0802a55f09e3c27818704dca3a882902","summary":"v0.1.8: track 0053 supply-chain attestation, docs refresh, action/ removal","tx_id":"60a43a58-31fc-43b5-a4a0-df155552f170","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"CHORE","committed_at":"2026-07-12T19:17:09.222868900+00:00","entry_hash":"c300b8a0b76e0afae99ea8bf31b0dc8e598d44853bc316410fbbff6081a33830","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Full git-history gitleaks scan completed before public flip:\n- 11 findings, all confirmed false positives (fake test keys in\n  redact tests, deterministic test hex, SQLite C source/headers,\n  cryptographic algorithm names in SECURITY.md)\n- No real secrets, .env files, or credential patterns in history\n- Baseline suppresses known false positives so future scans are clean\n- Verified: gitleaks git scan returns 0 leaks with baseline","risk_level":"TRIVIAL","signature":"0ce4e751f2115fd5ab3d349cc80aae351d4d785d50a9dc8def1f39c70f9606729f6b12cc0f6637847bb9f2cadf65db453d811594bb58cb4431e744db2b133d09","summary":"chore: add .gitleaksignore baseline for false-positive suppression","tx_id":"366aa11a-b7c1-4e5a-a116-b03afa2cf0df","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"SECURITY","committed_at":"2026-07-12T19:17:15.447486600+00:00","entry_hash":"23099f185eead839725884fd2b436113ce624bd26d1c966582fa87aa63a0065f","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Pre-public-flip secret scan: 11 gitleaks findings, all confirmed false positives (fake test keys, SQLite source, algorithm names). No real secrets in git history. Baseline suppresses known FPs.","risk_level":null,"signature":"40288b6a2e7ecbe95202a809142ef81ad3681750dc422ecfb1d859c1139497e93f12c8ec69ae736c1105abe9d7e628cc6f10338fa5b0171076819944f9ed6004","summary":"Add .gitleaksignore baseline for full-history false-positive suppression","tx_id":"6e759f3e-edd9-4502-9881-52ea4982ded1","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-12T20:35:45.060811200+00:00","entry_hash":"3b72ae22f6f6e88b97a509ba20ba15c032392bcaf5231b6806f19341a062818f","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"- scanner.rs: ProcessGroup -> ProcessGroup::leader() (process-wrap 9.1.0 API)\n- web/mod.rs: wrap std::env::set_var in unsafe block (Rust 2024 edition)\n- release.yml: CycloneDX schema URL master -> refs/tags/1.5 (404 fix)\n- mcp-server/package.json: version 0.1.6 -> 0.1.8 (match engine)\n\nThese only affect non-Windows targets (Unix cfg gates); Windows build\nwas unaffected. All 1463 lib + 578 integration tests pass.","risk_level":"HIGH","signature":"3bee24563ad131fca435eedd3a94303649e6c3ab5ebf194a2b9fe238acd03e53c0d51ca3a172a88f6abac50ce1c6464aa5baf13aeb434dbc99855c383f16740c","summary":"fix: cross-platform compile + SBOM schema URL for release pipeline","tx_id":"2daa6248-6f69-450e-acf6-d351f3c8a8f4","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-12T20:35:52.226715900+00:00","entry_hash":"a1ea8ce1699d5e75299ded90bd8fbe2b1db4881f6633e26d051d8fa03844e6f8","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"ProcessGroup::leader() API fix, unsafe set_var for Rust 2024, CycloneDX schema URL 404 fix","risk_level":null,"signature":"b7af40a1407edf5609c975f45bd99bfed54ddd51bd676ab55c10c7c498f47bc5be96c6fc3b5445013e5ea973d05f1edf64834bf9ec78fe9e625335ba0d8a110f","summary":"Fix cross-platform compile errors blocking release pipeline","tx_id":"81d68f79-b93a-4cc4-9d2e-0a9994f68e77","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-12T20:42:28.917314600+00:00","entry_hash":"701513e7210cd875a5ef072d70f4249eab7ddf7f825b6bc105dab44bdf96b131","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"fix: correct CycloneDX schema URL path (schema/bom-1.5.schema.json)","risk_level":"MEDIUM","signature":"871f38e540e4ee8c56e28104093f6a311061cbf3f1e880fbbb97b7d495467a82161f5b2ff1ffdef590449101334c23eecd9ee7637e72d5bad199fef24e0ba005","summary":"fix: correct CycloneDX schema URL path (schema/bom-1.5.schema.json)","tx_id":"202c465e-f7dd-4073-a941-1586daebd1d8","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-12T21:05:59.043314600+00:00","entry_hash":"90ee21343aeeed14c486220caee1a663b468a01779dd8581ad1bf8a4a006c402","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"fix: add export feature to MCP package build command","risk_level":"MEDIUM","signature":"aae69b2301456a857e3092a393edec249022c00ba3bdd30b7e29c276fa0fb1f1310d279c65402659bee3dc9115e8ba0969a333c67e013eeee227ba46c16f7201","summary":"fix: add export feature to MCP package build command","tx_id":"b578a96d-bc67-43f7-96bc-9ad2f066e85b","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-12T21:22:26.676907600+00:00","entry_hash":"0cfb7ade38dcb7f979df8c915513af734259e09639564963f55d264a662b1842","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"- cosign-installer: 6f9f177 -> 3094a48 (latest main)\n- cosign-release: v2.9.0 -> v3.1.1 (latest stable)\n- verify-blob: use --bundle instead of --signature/--certificate\n  (v3.x bundle format is the default; old flags deprecated)","risk_level":"HIGH","signature":"f90bf74fd5d512c8552ffd8878181d215d51dcdbb0ceca67e88eb91d7a373fe89a072a428e3fe3b302c73ee0b0f1b8c6d15d0bf6b53384ad090299b79e66c004","summary":"fix: update cosign-installer to latest SHA + cosign v3.1.1","tx_id":"5c419f82-ee20-43b1-a0e0-0cf70c60c0ae","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-12T23:00:11.049921700+00:00","entry_hash":"9550e6bb9dcf16843433022655358e9714aba35cc2901c825542b56cae0ff14f","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"- install.js: inline archivePath/destination in Expand-Archive\n  command string (fixes  binding issue with PowerShell -Command)\n- package.json: add ledgerfulEngineTag field (v0.1.8) decoupling\n  MCP package version from engine release tag\n- install.js: releaseBaseUrl uses engineReleaseTag() instead of\n  packageVersion() for the download URL\n- platform.test.js: test updated for engine release tag\n\nPublished as @ledgerful/mcp-server@0.1.10 on npm","risk_level":"HIGH","signature":"d33d90247ba2be0247ee84587e862d2bb6546a24c15051bd7d0e0267e23fe0d062b3a0b698df61738602f9372fde2eb8913b0af9b2984933f96d8efe0244f103","summary":"fix(mcp): Windows Expand-Archive + engine release tag decoupling","tx_id":"62b2677d-5dcb-4127-b57c-f76c4513c55d","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"DOCS","committed_at":"2026-07-13T22:31:04.647876700+00:00","entry_hash":"f15375ba1311bc4f69e6344f1345d72b54d7dbdcf19171208c65661666394775","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Replace internal 'Work by conductor track' jargon in README with public-facing\nContributing section routing to Discussions/Issues/Security. Add bug_report.md\nissue template with routing notice for general questions. Update SECURITY.md\nsupported version to v0.1.8 and remove DRAFT safe-harbor banner (counsel-\nreviewed, LLC formed, license in force per deferred.md legal cluster).","risk_level":"TRIVIAL","signature":"3fe336c15141bfb12c52c6a7f6f80746a422f559df5720bd0421911ded7a5fff3b381a6b2720f0ba6d1dc136d5d52db8ad09de3d94fc96547755b93ceee10200","summary":"docs: track 0042 — public Contributing section, bug_report issue template, SECURITY.md version update","tx_id":"35277d78-3d58-442b-915d-a53f4482717b","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"DOCS","committed_at":"2026-07-13T22:31:13.276008900+00:00","entry_hash":"e291c69bc8c8aac3d925e01dc0127d63efd6ad4ca6edea69869749ecf88af0d9","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Track 0042 engine slice: public-facing repo hardening before launch","risk_level":null,"signature":"9522406c33babd89965f8cd0a7d690335cbfb6bae747d587bcd53a12496948564a3b4783a6baae3433910689c24aec03c4450a417d04c377bfa7ff7c05ef5303","summary":"Replaced conductor jargon with public Contributing section, added bug_report issue template, updated SECURITY.md version to v0.1.8 and removed DRAFT safe-harbor banner","tx_id":"33f7e0f6-e669-43e3-a32f-063e5b9e97f8","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"DOCS","committed_at":"2026-07-13T22:41:43.131199800+00:00","entry_hash":"47211308db37850f1497c175aaf4fde69f92abc32e8f94f78cfeb119a4e3c696","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Remove conductor track references from docs/Features.md (Track 0046/0039 →\nplain descriptions, add issue #6 link for chain-hash limitation). Fix\nSECURITY.md: remove stale provisioning note (mailbox is live per 0027),\nupdate supply-chain status block from future tense to active, fix cosign\ncertificate-identity URL casing (ledgerful → Ledgerful), update example\nversion v0.1.7 → v0.1.8, remove 'gated until public' language (repo is public).\nRemove unnecessary pull-requests:write from ci.yml top-level permissions.","risk_level":"TRIVIAL","signature":"f0dc832b13219fcf0b874833998afac4f3bcaa17a422385646101a7a406e574943587ae161ce9410ece93f2facacd4b5880d96aba1aff996c3711742dc84bd02","summary":"docs: track 0042 R1 — clean public docs of conductor refs, fix stale SECURITY.md status","tx_id":"9e6cc446-cb77-49e9-924a-f12e32673ac6","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"DOCS","committed_at":"2026-07-13T22:41:50.679773+00:00","entry_hash":"acdcd73bdfa82f2417c9f73d91c797d7782811cce89b9645c1db54ef2900edf3","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Track 0042 R1 review fixes","risk_level":null,"signature":"633d67ae3635b0ee1eee167131fca18c7a58d309d5473ab92e176326415072265f091d5a516a536d47d4456c1c1df14e475c8f6a98aa8fcc3a92dab24c849101","summary":"Removed conductor track refs from Features.md, fixed SECURITY.md stale supply-chain status and mailbox provisioning note, removed ci.yml unnecessary pull-requests:write, added chain-hash issue link","tx_id":"9bec0b39-2ab9-4077-98a7-f66d4556cc42","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-13T22:58:13.886568100+00:00","entry_hash":"eba49e0978db4020380f28d0a45fbcb1404d7ce1011de08d25862c2a1e4047ff","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Remove '0027 public flip' references from release.yml comments/echo (10\noccurrences → neutral 'when the repository becomes public'). Remove\n'conductor track 0004' from ai-review-gate.yml header comment. Fix\ncargo fmt on src/commands/web/mod.rs (unsafe set_var block formatting).","risk_level":"HIGH","signature":"29ab55243de1b5d0d983c258c15771bd9024f21ec73ddb136d17269f777e75959cf19c00e9efef8e9f1190f9798b1014dd38624e5a6a2194c3147752974ec20d","summary":"fix: track 0042 R2 — remove conductor refs from workflow comments, fix fmt","tx_id":"d1e8cc1d-fa09-4b43-9373-5a2d186bd545","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"DOCS","committed_at":"2026-07-13T22:58:22.759613900+00:00","entry_hash":"69fe3b182b50b0923f41d91745515248d9effe993041a64259ea7c45155b8691","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Track 0042 R2 codex review fixes","risk_level":null,"signature":"3b7ac75a413e8529950fa16dbeb89429ea522cf041688d31a152bd7d2bab3890fe248654381d1f3cb70e90f3208f6937196507404b7a2239750fb92edeb2f703","summary":"Removed conductor track refs from release.yml and ai-review-gate.yml, fixed cargo fmt on web/mod.rs","tx_id":"bd5609e6-df93-4ae8-87c4-389b8454100d","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"SECURITY","committed_at":"2026-07-13T23:27:15.339652300+00:00","entry_hash":"10b5213d82a8b420a433691f71bc16560e7f36b83ef03110e17391b1e8f169e8","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"security: track 0042 R3 — pin frontend checkout SHA, fix cosign verify instructions\n\nPin ledgerful-frontend checkout to commit 4a1df7e in release.yml, ci.yml,\nand smoke.yml for reproducible builds (prevents a backend tag building\nagainst an unreviewed frontend HEAD). Fix cosign verify-blob instructions\nin SECURITY.md and RELEASE_NOTES_TEMPLATE.md to use --bundle (matching\nthe shipped .bundle asset files, not separate .sig/.pem files).","risk_level":"MEDIUM","signature":"149d24a7b2c8f39a4b54cc34b68c898761f8e72f99cfa6026c825e1794b8a775a9ebaf5c1414d0c0cbb26029ec2b960f4131455528084ff92705ccffbb61610b","summary":"security: track 0042 R3 — pin frontend checkout SHA, fix cosign verify instructions","tx_id":"9fb6747e-33e8-40ad-9965-d087f9baa48f","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"SECURITY","committed_at":"2026-07-13T23:27:22.279025300+00:00","entry_hash":"311f4ff533796ebc7a23b8d69e7d2cb4d6b627ad7535e31e5c8497dae50797f0","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Track 0042 R3 codex review fixes — reproducible builds + working public verification path","risk_level":null,"signature":"dffb6d2ec18fce2e0aa3335ee668f631df7b82f979f33d80f05a540383653a53f8873e420db3588196d5ae7091ffa607b0054b218334abc9c4e488ee694dc00f","summary":"Pinned frontend checkout to SHA 4a1df7e in release/ci/smoke workflows, fixed cosign verify-blob instructions to use --bundle in SECURITY.md and RELEASE_NOTES_TEMPLATE.md","tx_id":"65ad5b62-5061-44e0-9b16-393555c870c6","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"DOCS","committed_at":"2026-07-13T23:46:11.721434+00:00","entry_hash":"b4a4cda1482e6eb1926290e23d79a7d7db912d94d338e8943cc5350c5cf98e5c","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"User requested all deferred items be resolved","risk_level":null,"signature":"fcb1ddf47b6af9547eb767d001e322d35f88dce8a0a99fb7698fa21cc84179ec8369035b0eb1006a08589c42e586df1ea8e25d098d4dc6c0e652a7c1a12fe506","summary":"Resolve all 3 deferred P3 items: remove stale DRAFT banner from THIRD_PARTY_NOTICES, remove Track 0013 from source doc comments + regenerate openapi.json, replace conductor track refs in operator-surface-policy.md and skill.md","tx_id":"8863808c-f7e7-47c1-a58f-470d073dddf9","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"DOCS","committed_at":"2026-07-13T23:46:18.295874+00:00","entry_hash":"a5644a06099e9af5c1c80a796810790b3ccf4602df71b10369f00930277538cd","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"THIRD_PARTY_NOTICES: remove stale DRAFT banner (LLC formed, license in force).\nSource doc comments: remove Track 0013 from error.rs, types.rs, handlers.rs,\nusage.rs, sync/mod.rs. Regenerate openapi.json from cleaned sources.\noperator-surface-policy.md: conductor tracks -> development tasks.\nskill.md: conductor track -> development task.","risk_level":"TRIVIAL","signature":"644da5fccbe783b3dbaa42776413fbb4c42afef4a2bd15de2eef6e2e0d4a9a223356315c3c3dd8d75926ad59eadbd80b9aa5acf3c66217fb356def0836981502","summary":"docs: resolve all deferred P3 items — remove conductor refs, stale DRAFT banner","tx_id":"48d5c0f1-2d6e-4f34-aa73-d113326d858b","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-14T22:20:39.654933900+00:00","entry_hash":"ed75e0c9064597991a4e23e540e8ace61ad4c2de9909f0f8b361f92b20011e7b","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Adds HMAC-pseudonym, bot-key signing, deterministic NDJSON bundle, offline verifier, and integration tests per 0045 spec.","risk_level":null,"signature":"10fb1eb96e11af6ba1728fa3cca2dd88d8699d4a3026d6b8cfdf8f8a86e8ab71446ec4cd990a7d490e52361a4e595a6e626497c06940a8499b9d033a2e424e0f","summary":"Implement ledger export-public engine slice","tx_id":"3dfc78d5-62cd-4629-a338-7a631b4da010","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"FEATURE","committed_at":"2026-07-14T22:27:32.560132800+00:00","entry_hash":"5dde56eaae5cd846c225bd6d1d6c5fe34b82e61110c1238cb59d8da012694541","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"feat: implement ledger export-public engine slice (0045)","risk_level":"MEDIUM","signature":"bd3d4001a5aba6244052b8fde02f2f83424665ce5f88f9a007d1c06d65ef6fd5e5b31071fa116e2eecae99510ccd77019e3bc0c9ab291b31227dfc1ae270710f","summary":"feat: implement ledger export-public engine slice (0045)","tx_id":"c1adb145-1c1a-4efd-8a3e-ed46e776c907","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"DOCS","committed_at":"2026-07-14T22:43:46.637426400+00:00","entry_hash":"70d3aa3143744e87f916fd537fa6d3b6f7b92c17ff1d3bc7695252b33d713410","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Document public bundle semantics, allowlist, honest ceiling, verification, and publishing per track 0045 DoD-4","risk_level":null,"signature":"97c5faf318d38d4b193d61b040bfca183731f03a76216f13f173c329e82be6b556387285f56dbedda721257456ee00d71dc134963f45ce7d740610b22d75ed08","summary":"Create public-ledger.md developer doc","tx_id":"4ee1c4f0-bcda-4ef9-974b-4bd251c118b5","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"INFRA","committed_at":"2026-07-14T22:43:46.757493900+00:00","entry_hash":"6af05be12e343dea54a7306a8448fa3849c8f527c2ccd661daaf1902eb04b416","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Ensure sensitive fields cannot reach the public export allowlist without a deferred.md exception; track 0045 DoD-6","risk_level":null,"signature":"2ecbf3bdadc0236350c75504e75356b03288797849777489a507c7dba533b09b2753a70c041e6a92513ec727ba52b0a34453d728f4e4e5e3c7f7a4b96fd3940c","summary":"Add CI allowlist guard test","tx_id":"1b7d745c-2978-4e24-b8fc-ea5cbe60deab","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"INFRA","committed_at":"2026-07-14T22:43:46.901490100+00:00","entry_hash":"8bf11fa9d2a6d7aaaa0bd9df2992da7362fe2ce7c96b5f584f6cfb4c7027801c","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Grep public_export.rs for network dependencies and publish evidence as a 90-day artifact; track 0045 DoD-4 part 2","risk_level":null,"signature":"c0495df02297d024e0a05511cef33dac3f9c06ce8e7379018241c4068620edc7d6603cd7408271b346f3a47ad5b52cffc75625844b76264dd6f5a5680eb7c108","summary":"Add no-network public export CI job","tx_id":"dc8170d3-8b6d-4307-8d5b-0f7dd6b78113","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"INFRA","committed_at":"2026-07-14T22:43:47.026237+00:00","entry_hash":"34c3f68eb8f4ffe726c464b719d6f133be11fefe028e56b69257e88b70363394","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Add [[test]] ci entry in Cargo.toml so the allowlist guard is built and run","risk_level":null,"signature":"5bfc7cc9e3313cf43aaa839c5a805e8dbd4f26ba26a59c7447f9a99e270c9930dd0b42c7e29f7d236eccf786b07f9ac256a5318c4bdc76e02371ba533a80d701","summary":"Register tests/ci test target","tx_id":"9de66af1-0afa-4673-8549-627b1257a84d","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"DOCS","committed_at":"2026-07-14T22:47:36.463904500+00:00","entry_hash":"6dd6cbbb9ca3f2b1c8e8847d8242fa352be58b392770266731f144fa5137183e","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"docs: add public-ledger.md + CI allowlist guard + no-network workflow (0045)","risk_level":"TRIVIAL","signature":"159335fd762374752173720446cf2c49ec187e201915c1f2a3361ebaac958d0cbf947b9c30416f86dc7bc4285816cf171e7e7b5fff63945781dfbe38d0008301","summary":"docs: add public-ledger.md + CI allowlist guard + no-network workflow (0045)","tx_id":"5702acc0-8e66-477f-86b0-574787e87048","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-14T23:28:21.093247600+00:00","entry_hash":"dfba69dd8b1002eda18e572eec84261f772218ba8a2201bd855c16311fe56ef4","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"Address P0-P3 findings: verifier payload, deterministic manifest, explicit preserve_order, doc refs, error handling, status mapping, allowlist notes, and entry signature integration test","risk_level":null,"signature":"236246948cba9b64b10e928d6be8207d7188901fc187b085bf75aa5ac6f16797a972b606313cf42b5ff9913e3280351cdc148672430441d20e04912f46863307","summary":"Fix 0045 review findings in public export","tx_id":"8f28ef88-f038-4545-9115-cd85ee591c8b","verification_duration_ms":null,"verification_result":null}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-14T23:30:23.037057900+00:00","entry_hash":"d8179bbdbe730f0b4d4bcd0a4fae4d9598f4040378b0bd2fda86fca968ebab83","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"fix: address review findings — verifier payload, deterministic manifest, serde_json preserve_order, expect() removal (0045 R1)","risk_level":"MEDIUM","signature":"f7ca44ae30f1db1c2eab648c632f979d47c952343de2e0b2fca9e4159c58e10dea1f382a2c769e90af5f8e9e38a61aef0d0c848db9d4eda9cfe9ebdd05e1770f","summary":"fix: address review findings — verifier payload, deterministic manifest, serde_json preserve_order, expect() removal (0045 R1)","tx_id":"0e195696-6d74-4045-8530-71e211650e3c","verification_duration_ms":null,"verification_result":"verified"}
{"author_pseudonym":"2e5359c1f17145270921578fa113f64bbc447dbf0491bbd588a07c89814a11e3","category":"BUGFIX","committed_at":"2026-07-14T23:32:33.824720900+00:00","entry_hash":"d55a7f67193cffb58be8328853be3fa93a4ee209110f941d4be7cca04ea28900","prev_hash":null,"public_key":"5b7c0379b66140dda3b4f0c36162a47f3fc6d9ac7f4462c6ae99d2853b37c1cd","reason":"fix: gate test_compute_author_pseudonym with cfg(test) (0045 R2)","risk_level":"MEDIUM","signature":"c37bf7a5ee7606e54f8bcb619a44f33340c4c22ed28a5ff5fdae29034bdad46522443f56ecd6121500bb7df693fa8ac0544b4880523aaa28ec66eab9a6301c0f","summary":"fix: gate test_compute_author_pseudonym with cfg(test) (0045 R2)","tx_id":"2daf64ad-81f1-4690-9cdf-989359285a20","verification_duration_ms":null,"verification_result":"verified"}
