Record reviewed case source evidence (11/13)
All checks were successful
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Successful in 1s
Reject generated-only commits / generated-commit-guard (push) Successful in 9s

This commit is contained in:
codex 2026-10-17 22:35:41 +02:00
parent 30e41c948e
commit df5765e0e1
20 changed files with 1552 additions and 0 deletions

View file

@ -0,0 +1,17 @@
import sys
def guard(event,args):
if event.startswith('socket.'):
raise RuntimeError('review isolation: sockets disabled')
if event == 'subprocess.Popen':
cmd=args[1]
if (type(cmd) is list and len(cmd)==5 and cmd[:3]==[sys.executable,'-I','-c']
and cmd[3].startswith('import sys as _review_sys\ndef _review_guard(')
and str(cmd[4]).startswith('/tmp/warden-case-validator-') and args[3]=={}):
return
raise RuntimeError('review isolation: subprocess disabled')
if event in {'os.system','os.exec','os.posix_spawn'}:
raise RuntimeError('review isolation: subprocess disabled')
if event=='open' and isinstance(args[0],str) and (args[0].startswith('/home/') or args[0].startswith('/root/')):
raise RuntimeError('review isolation: ambient home denied')
sys.addaudithook(guard)

View file

@ -0,0 +1,5 @@
{
"exit_code": 0,
"stdout": "[detached HEAD ae7bc73] fix(case): preserve attended authority at dispatch and validate session lanes\n 8 files changed, 252 insertions(+), 27 deletions(-)\n create mode 100644 tests/test_case_attended_boundary.py\n",
"stderr": ""
}

View file

@ -0,0 +1,267 @@
[
{
"path": ".custodian-brief.md",
"sha256": "4ff4bb94315149e07d36b8f4ecbbfc63b61d72e9d81f0f43a9c2f02bc13ada85",
"index": "100644 34573d262327057c11628ce8a7ca78292968545b 0\t.custodian-brief.md"
},
{
"path": "WORK-RECORDS.md",
"sha256": "b6af9b1cb21e3a64b2ef8a5e732bc35c39cdeaef6af7a18f24824e8ec9fb5a76",
"index": "100644 34cf268862326a5832a7d0be9e84eb296e5601bb 0\tWORK-RECORDS.md"
},
{
"path": "workplans/ADHOC-2026-06-27.md",
"sha256": "f0a89c1809e23b436767a73b70636c283e79216fb19678f08bef2b9e62e42ddb",
"index": "100644 d75908fb225c1f964b5b697032a6f98c4a13c1db 0\tworkplans/ADHOC-2026-06-27.md"
},
{
"path": "workplans/ADHOC-2026-06-29.md",
"sha256": "9869f07cdfe79d37314d36db74a434a55b50c0b965ae53f29d76ca9a9a73151f",
"index": "100644 b46be0fd6ee2eeea9ffeff695b887b61aab8a7a2 0\tworkplans/ADHOC-2026-06-29.md"
},
{
"path": "workplans/ADHOC-2026-08-11.md",
"sha256": "6bba4f5dab9fc64f7b65df7c2ab7e4b9d4dbb69ba1c4a41c8440dbd23555aea4",
"index": "100644 3d858fe808bd7a9d8318cdcd38ee012a8d907ca4 0\tworkplans/ADHOC-2026-08-11.md"
},
{
"path": "workplans/ADHOC-2026-08-17.md",
"sha256": "39ec882551bf5643fabb3ebc9f47300b4e6f6caf6d67a0a26bc100b68d4e313e",
"index": "100644 65d75959a0fd23dd861e24321b1b46057d6fea5f 0\tworkplans/ADHOC-2026-08-17.md"
},
{
"path": "workplans/ADHOC-2026-09-08.md",
"sha256": "27c64084fdd16b926b138584d96688061a18a58d4d8152d9688b4486b9687c05",
"index": "100644 c1ae7c3ea0d8e722d7073ae920780a5e56611294 0\tworkplans/ADHOC-2026-09-08.md"
},
{
"path": "workplans/ADHOC-2026-10-03.md",
"sha256": "8de5e5ba28ce2cd94c5864e316d54fe32e6cdfdb0e75551fe92ed25b81eeafa6",
"index": "100644 e76cd016eab0dfd9eceac7d8033b40f92c9ada32 0\tworkplans/ADHOC-2026-10-03.md"
},
{
"path": "workplans/WARDEN-WP-0016-ops-bridge-tunnel-cert-pilot.md",
"sha256": "ad904837aa2d83d888d46c482fe381eba328c96a4617209ea8a9ae2d7d64c467",
"index": "100644 a787f1da8347fdd2219ef67a569d21a192563343 0\tworkplans/WARDEN-WP-0016-ops-bridge-tunnel-cert-pilot.md"
},
{
"path": "workplans/WARDEN-WP-0017-access-front-door-discoverability.md",
"sha256": "a35f65a40c98d35e86f352c1430837b8bc9f269bddaddfe4a71c6414f678d85c",
"index": "100644 fe9c5b15a464aa3ae104576bfc0a04510d944f89 0\tworkplans/WARDEN-WP-0017-access-front-door-discoverability.md"
},
{
"path": "workplans/WARDEN-WP-0018-whynot-design-npm-lane-activation.md",
"sha256": "6d9145534f7fa80cec9f185751d3796fdaab4a2d88b289a5451ba04e24822855",
"index": "100644 f923be5351582a2bab38afc1aca3b4e5da0fe008 0\tworkplans/WARDEN-WP-0018-whynot-design-npm-lane-activation.md"
},
{
"path": "workplans/WARDEN-WP-0019-route-to-secrets-engine.md",
"sha256": "8fa2d79c85a821f7bc51044f37001bad613afb75d143181e2e0a01b213e06df8",
"index": "100644 602fad1b4e56fc69de85aa2e0843676f50186340 0\tworkplans/WARDEN-WP-0019-route-to-secrets-engine.md"
},
{
"path": "workplans/WARDEN-WP-0020-ops-warden-worker.md",
"sha256": "d565f65413a2698160caf33ab30d7513a03d06ddcee7d624b198bb8841abdcc3",
"index": "100644 1230ed3175d3f5f175fc0146e8006ebd8be5a369 0\tworkplans/WARDEN-WP-0020-ops-warden-worker.md"
},
{
"path": "workplans/WARDEN-WP-0021-enable-scheduled-worker-tick.md",
"sha256": "4f7afe5bdd147705e68d31d02f39251543c6c120ce22d893b98af063e303c361",
"index": "100644 2500d4b346dffbe6d5f9848c5440bfa8d85d5d14 0\tworkplans/WARDEN-WP-0021-enable-scheduled-worker-tick.md"
},
{
"path": "workplans/WARDEN-WP-0022-audit-trail-and-activity.md",
"sha256": "f733fb0d7cfcc7b44aba49a730e7f51381d6478a87c394161e77c90577c26505",
"index": "100644 63171f58096efb8d4bc07c69db250fff7038f4e1 0\tworkplans/WARDEN-WP-0022-audit-trail-and-activity.md"
},
{
"path": "workplans/WARDEN-WP-0023-intent-scope-alignment-closeout.md",
"sha256": "97d25825ba626a3979e8d6217aebd27f58d27fe9f92e8b94eb2f63e2bb843cb9",
"index": "100644 99278d609aa5324c625364b2e0ac636ad9219ddf 0\tworkplans/WARDEN-WP-0023-intent-scope-alignment-closeout.md"
},
{
"path": "workplans/WARDEN-WP-0024-experiential-memory-and-agent-sessions.md",
"sha256": "22bde2d1398a4260e337768c6cf71cf80cd61d466371b6cfd0c0f0c18fc72378",
"index": "100644 3ebac662f6c96f69a5fa6cbb5917999a4e24455a 0\tworkplans/WARDEN-WP-0024-experiential-memory-and-agent-sessions.md"
},
{
"path": "workplans/WARDEN-WP-0025-forgejo-admin-api-token-lane.md",
"sha256": "ded5bdfdbe897f3376c71c7a169caca51a9d75453ba66cf216ec8dfcab91c708",
"index": "100644 5c4e77249b01fd8cb9300a237c917d95363cf2d7 0\tworkplans/WARDEN-WP-0025-forgejo-admin-api-token-lane.md"
},
{
"path": "workplans/WARDEN-WP-0026-credential-disclosure-hygiene.md",
"sha256": "f65ccdf9c920e9138353018e2ed5a7fbbd590246eb730fc6f57c75b6d2e09eea",
"index": "100644 309f77187b31c1287b085affefc9d271ea40858c 0\tworkplans/WARDEN-WP-0026-credential-disclosure-hygiene.md"
},
{
"path": "workplans/WARDEN-WP-0027-credential-governance-lockdown.md",
"sha256": "0d0c08458718ec88883c4b257ea80011123a6d5aa2eea36fe28db331ff6d438f",
"index": "100644 c14e9c303a1f1a096fdf710ee48112f68205435e 0\tworkplans/WARDEN-WP-0027-credential-governance-lockdown.md"
},
{
"path": "workplans/WARDEN-WP-0028-tenant-secret-custody.md",
"sha256": "92cc0ad8d42209d5d7e45122e8ddd67e1970de1d200df373885ba5fb75e0d22a",
"index": "100644 fe81983444e5127bb8a0fdf94f42c3817758c67e 0\tworkplans/WARDEN-WP-0028-tenant-secret-custody.md"
},
{
"path": "workplans/WARDEN-WP-0029-policy-front-door-and-founder-surface.md",
"sha256": "2b21f06c062edd96943a1d26fd86c6a27b341b1db4532e528edbaebd4ced7e66",
"index": "100644 4008d825b4c39d3f0e4a80f6d290af9b551fd812 0\tworkplans/WARDEN-WP-0029-policy-front-door-and-founder-surface.md"
},
{
"path": "workplans/WARDEN-WP-0030-delegation-register.md",
"sha256": "59bf962b355cd9734315108f9868508739ddcb4855591bff53aea3634aed47f7",
"index": "100644 49612d072663af831f7b7314c4b77e4b9596097b 0\tworkplans/WARDEN-WP-0030-delegation-register.md"
},
{
"path": "workplans/WARDEN-WP-0031-policy-caller-identity.md",
"sha256": "0fa890ba81833180feb727ba35dcf01ead7d7dedf55a285a49a2585049b4bffb",
"index": "100644 c4c600c47a6e4a65951b1adf324cc33f13cb1be6 0\tworkplans/WARDEN-WP-0031-policy-caller-identity.md"
},
{
"path": "workplans/WARDEN-WP-0032-security-zones.md",
"sha256": "4497947e57fb86e883090d07c8bef031fd5fe4a7f3eb065d530ebe327d97b1cc",
"index": "100644 6c8000ade056b82e019826d01a7e9e8cf0f4de98 0\tworkplans/WARDEN-WP-0032-security-zones.md"
},
{
"path": "workplans/WARDEN-WP-0033-native-lane-handoff.md",
"sha256": "74747ebf7c628b1a5336c63aa3924212068a6015f370e647cf9127949c181998",
"index": "100644 55cd015061bb610fe43c8f2ee821bb71b092d77c 0\tworkplans/WARDEN-WP-0033-native-lane-handoff.md"
},
{
"path": "workplans/WARDEN-WP-0034-layer-model-v07-conformance.md",
"sha256": "57e10b9efff02d7437231424ebc4d48864a2019939c2cda2fa10629a4ede2a3b",
"index": "100644 d6ebfdce0e2901b42c98e38e9eaaac0f1d817e79 0\tworkplans/WARDEN-WP-0034-layer-model-v07-conformance.md"
},
{
"path": "workplans/WARDEN-WP-0035-policy-nexus-forgejo-source-read-route.md",
"sha256": "d40987b48a8416de386972d214ce01dba138a9f294cc948de36085c794c76418",
"index": "100644 1210b158a3836d2b4df934f50fb538c5241b09d5 0\tworkplans/WARDEN-WP-0035-policy-nexus-forgejo-source-read-route.md"
},
{
"path": "workplans/WARDEN-WP-0036-attended-login-openbao-output.md",
"sha256": "e0584491b5a6a7d4db0cf61a689f733b4a6597778ca79a3f8f2207fe7ecfb8cc",
"index": "100644 452eb41267ea99cc83104fcb2a782c0b244b87d1 0\tworkplans/WARDEN-WP-0036-attended-login-openbao-output.md"
},
{
"path": "workplans/WARDEN-WP-0037-whynot-design-forgejo-npm-lane.md",
"sha256": "7c64a631eb70d9ff42826ea5966cac571786ff86bac5393f88c328aeb14aa9ba",
"index": "100644 a3eba2dff6517a64b2c5d3d9b9a9c14ca4570ec6 0\tworkplans/WARDEN-WP-0037-whynot-design-forgejo-npm-lane.md"
},
{
"path": "workplans/WARDEN-WP-0038-plan-mutation-intent.md",
"sha256": "09b0ed8c6315255796a2da0d64dfd001b1f6de2e903ac2ea79bc5667b499fb83",
"index": "100644 8c9c5b6df7d1f48b48f8c2056c2a8186935184ee 0\tworkplans/WARDEN-WP-0038-plan-mutation-intent.md"
},
{
"path": "workplans/WARDEN-WP-0039-explicit-policy-refusal.md",
"sha256": "e8773a7b4196cf77a48ab4ed0804a5f826a0a0b5e7972f968681746ebbc6e3e9",
"index": "100644 ca0828d2679eda031fb86d66eb886ccb38ee1843 0\tworkplans/WARDEN-WP-0039-explicit-policy-refusal.md"
},
{
"path": "workplans/WARDEN-WP-0040-unknown-zone-fail-closed-adoption.md",
"sha256": "a4b8e768eaacd5ab5a90f69a1abcb3bd48ce821fcdea208b0ee75d9326f0d512",
"index": "100644 f07fb535d5ad00f5330f16a5a6e927da6960fe52 0\tworkplans/WARDEN-WP-0040-unknown-zone-fail-closed-adoption.md"
},
{
"path": "workplans/WARDEN-WP-0041-catalog-lane-scaffolding.md",
"sha256": "c16993301f29e7f5ea005cccdbe360ac9c4c3949e6988e2b7a1f1e5df6235bc1",
"index": "100644 8a1ca341e9fcc041dcf99be8706f0db2a39408a6 0\tworkplans/WARDEN-WP-0041-catalog-lane-scaffolding.md"
},
{
"path": "workplans/WARDEN-WP-0042-openbao-structure-survey-route.md",
"sha256": "1e48399d6ef8a509898e8ea0b334a378c51ec467aaa704b6dbf8485aed29fa8b",
"index": "100644 097d64791e79e782640514c7324e2ff8a5dc435c 0\tworkplans/WARDEN-WP-0042-openbao-structure-survey-route.md"
},
{
"path": "workplans/WARDEN-WP-0043-platform-supplier-credentials.md",
"sha256": "c059b7f80ad4c0e5faa8ad15532ab6c2577d0c383ba91cde7293534b6e4683e2",
"index": "100644 d359328239b0b897ccffbf037a12b06d1f0d126a 0\tworkplans/WARDEN-WP-0043-platform-supplier-credentials.md"
},
{
"path": "workplans/WARDEN-WP-0044-security-case-follow-through.md",
"sha256": "10c6f02d578837dee12acd8b638d18c5b9f93b6a9c4aff3083ce60c3752d1664",
"index": "100644 aa9f798b39bcfe1f42b9a6777b1f83e7973e3c42 0\tworkplans/WARDEN-WP-0044-security-case-follow-through.md"
},
{
"path": "workplans/archived/260515-WARDEN-WP-0001-initial-implementation.md",
"sha256": "359456ecd25525d95748ca611e7c6c118eee2b914dae447c84c59442a6520458",
"index": "100644 5425cbd886ff77afc9be7c8b62b97d03278e0a8e 0\tworkplans/archived/260515-WARDEN-WP-0001-initial-implementation.md"
},
{
"path": "workplans/archived/260515-WARDEN-WP-0002-correctness-and-completeness.md",
"sha256": "43ba78e9c6e9914360edc88a6f8f5af0f981b3078ef41808a784ce7388559fb7",
"index": "100644 0b6044f99391e81a439f2782ee697434319df05b 0\tworkplans/archived/260515-WARDEN-WP-0002-correctness-and-completeness.md"
},
{
"path": "workplans/archived/260515-WARDEN-WP-0003-test-coverage-and-quality.md",
"sha256": "4fb4ac0cb72cf14dd72c6e5f313a068d90ead203460ad3ac68f0d5dd12b6a755",
"index": "100644 d544f950037cb705d5f7195ee559f91ca9f6a4f4 0\tworkplans/archived/260515-WARDEN-WP-0003-test-coverage-and-quality.md"
},
{
"path": "workplans/archived/260617-WARDEN-WP-0004-repo-hygiene-and-hub-sync.md",
"sha256": "fbb36a3d9c4ab0ac829bba713160d919b3c12c19f5f5826fb4e8483edeec3ac1",
"index": "100644 31330938708c5ae9b6412c5715549f2d69192589 0\tworkplans/archived/260617-WARDEN-WP-0004-repo-hygiene-and-hub-sync.md"
},
{
"path": "workplans/archived/260617-WARDEN-WP-0005-openbao-doc-alignment.md",
"sha256": "3c930a395d518f9b287855632c21fe99a3d5c78a758ece06498fb9e35f5ea8b9",
"index": "100644 9969260deee2960143102edecadb9fd7c9736832 0\tworkplans/archived/260617-WARDEN-WP-0005-openbao-doc-alignment.md"
},
{
"path": "workplans/archived/260617-WARDEN-WP-0006-netkingdom-alignment-and-access-stewardship.md",
"sha256": "fbc90ca4c18f8180a7fbcd2b43f21d7f99a44c914eb17c78f823228f8e3cc64f",
"index": "100644 8a7cc2f69821ac8cbf0de744073b7a938fa6b51d 0\tworkplans/archived/260617-WARDEN-WP-0006-netkingdom-alignment-and-access-stewardship.md"
},
{
"path": "workplans/archived/260617-WARDEN-WP-0007-policy-gate-and-production-verify.md",
"sha256": "613b73c79bad0929f621feb136b3141f9c60e23bf6e23650881a47c762101214",
"index": "100644 f49eea27ea7c15f4f3d608669ddd60e3a13803b5 0\tworkplans/archived/260617-WARDEN-WP-0007-policy-gate-and-production-verify.md"
},
{
"path": "workplans/archived/260618-WARDEN-WP-0008-production-ssh-path-and-stewardship-closeout.md",
"sha256": "8362d4cdb933b52c9be968d5410c8548c7554cc4cd44ab0389b913674795a10a",
"index": "100644 f3827285c4e279f36ac63c14ad166ff90544659a 0\tworkplans/archived/260618-WARDEN-WP-0008-production-ssh-path-and-stewardship-closeout.md"
},
{
"path": "workplans/archived/260623-WARDEN-WP-0009-flex-auth-policy-gate-production.md",
"sha256": "fa611c1a2e5c5a214e38f0673ebcda17e3f30e10556b268fb126ded9af2bdbbb",
"index": "100644 7f87d0ed26b7f19438f164a10a10a46808824776 0\tworkplans/archived/260623-WARDEN-WP-0009-flex-auth-policy-gate-production.md"
},
{
"path": "workplans/archived/260624-WARDEN-WP-0010-access-routing-charter.md",
"sha256": "62bc994e3efbb124004f98992ded6842ff2748568b2e405c61b335385a35b9d7",
"index": "100644 12357da7a3d1d5f994e70d0f06dcc80ea1faf848 0\tworkplans/archived/260624-WARDEN-WP-0010-access-routing-charter.md"
},
{
"path": "workplans/archived/260624-WARDEN-WP-0011-routing-guide-cli.md",
"sha256": "767cd3c53cfe64beab93f19475be823d0637a40140877db6dfcc60e2693652ce",
"index": "100644 3fe363e93d7e7d38db58deeec0ef3023bb35f8fa 0\tworkplans/archived/260624-WARDEN-WP-0011-routing-guide-cli.md"
},
{
"path": "workplans/archived/260624-WARDEN-WP-0013-production-integration-and-stewardship-closeout.md",
"sha256": "ecc38b4998796e20d734105df81ef6e2eb05c8e830b6d0dbe344d6336b9f668b",
"index": "100644 9812e11e5e3499a22d0d4dde01fccd26b7d0ee03 0\tworkplans/archived/260624-WARDEN-WP-0013-production-integration-and-stewardship-closeout.md"
},
{
"path": "workplans/archived/260627-WARDEN-WP-0012-routing-scenario-playbooks.md",
"sha256": "7a7a1d25cd1d015c0a28f0d443de0512fc48cb1fda4317760051251988aa96f0",
"index": "100644 acf9cce9f55395827479d4963e2d257be182f507 0\tworkplans/archived/260627-WARDEN-WP-0012-routing-scenario-playbooks.md"
},
{
"path": "workplans/archived/260627-WARDEN-WP-0014-operator-access-assist.md",
"sha256": "c1b84e750b2580fa1deae7dd56fd29abe5d9924a3ccd47ce9fc5f99c26aa4924",
"index": "100644 01240484d955b0af77443d6dd49948c96f9fb032 0\tworkplans/archived/260627-WARDEN-WP-0014-operator-access-assist.md"
},
{
"path": "workplans/archived/260627-WARDEN-WP-0015-secret-lifecycle-tiering.md",
"sha256": "300b8b6cfdd7306fbb81ab30d4f59551976eed1de0012fd655e4b6fc096ccf10",
"index": "100644 c59207892dcf723ce7b4ca0908635fb32407176e 0\tworkplans/archived/260627-WARDEN-WP-0015-secret-lifecycle-tiering.md"
},
{
"path": "workplans/archived/260707-ADHOC-2026-07-07.md",
"sha256": "e169418f6d83f954de1907ae8fa26a5f5cf4fe011be01dba9363e69befa05cfa",
"index": "100644 31e9d27f2aa37f8eac17cb5500873a60b9ee8833 0\tworkplans/archived/260707-ADHOC-2026-07-07.md"
}
]

View file

@ -0,0 +1,151 @@
{
"repo_slug": "ops-warden",
"repo_path": "/home/worsch/ops-warden",
"source_revision": "ae7bc73b4f4bac22454144959b870d161498e0af",
"source_revision_reason": null,
"issues": [
{
"severity": "WARN",
"check_id": "C-24",
"message": "Repo classification advisory: capability_tag 'security' is not a recommended family tag (allowed, check for synonym)",
"file_path": "",
"db_id": "",
"file_value": "",
"db_value": "",
"fixable": false
},
{
"severity": "WARN",
"check_id": "C-42",
"message": "Blocked workplan 'warden-wp-0027' has no task in status wait \u2014 nothing states what it waits for; qualify a wait task or re-status the workplan",
"file_path": "workplans/WARDEN-WP-0027-credential-governance-lockdown.md",
"db_id": "21528e8d-a049-523d-9ae1-da7a27cb8bbf",
"file_value": "blocked",
"db_value": "",
"fixable": false
},
{
"severity": "WARN",
"check_id": "C-37",
"message": "Residual workplan 'warden-wp-0034' has no origin/origin_ref provenance (not invented)",
"file_path": "workplans/WARDEN-WP-0034-layer-model-v07-conformance.md",
"db_id": "ae3ff76f-883d-5e2f-b6aa-144d61e8fdef",
"file_value": "",
"db_value": "",
"fixable": false
},
{
"severity": "WARN",
"check_id": "C-40",
"message": "blocker satisfied, task still wait: 'WARDEN-WP-0037-T03' in workplan 'WARDEN-WP-0037' \u2014 decision 1591daa1-6e85-4dfd-aadd-5a9fe1ef47fa is resolved",
"file_path": "workplans/WARDEN-WP-0037-whynot-design-forgejo-npm-lane.md#WARDEN-WP-0037-T03",
"db_id": "",
"file_value": "1591daa1-6e85-4dfd-aadd-5a9fe1ef47fa",
"db_value": "",
"fixable": false
},
{
"severity": "WARN",
"check_id": "C-11",
"message": "Task 'WARDEN-WP-0038-T01' has no state_hub_task_id",
"file_path": "workplans/WARDEN-WP-0038-plan-mutation-intent.md#WARDEN-WP-0038-T01",
"db_id": "",
"file_value": "",
"db_value": "",
"fixable": true
},
{
"severity": "WARN",
"check_id": "C-37",
"message": "Residual workplan 'warden-wp-0040' has no origin/origin_ref provenance (not invented)",
"file_path": "workplans/WARDEN-WP-0040-unknown-zone-fail-closed-adoption.md",
"db_id": "c8ee441e-1be1-5219-910c-e79ff23cc9ec",
"file_value": "",
"db_value": "",
"fixable": false
},
{
"severity": "INFO",
"check_id": "C-08",
"message": "Retired DB workstream 'adhoc-2026-06-29@retired-20260828' (id=1c0460b7\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
"file_path": "",
"db_id": "1c0460b7-bc8a-48db-96d4-681bce18ac91",
"file_value": "",
"db_value": "",
"fixable": false
},
{
"severity": "INFO",
"check_id": "C-08",
"message": "Retired DB workstream 'adhoc-2026-08-17@retired-20260827' (id=8376eb89\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
"file_path": "",
"db_id": "8376eb89-36f2-52b0-a59a-2954b2e49349",
"file_value": "",
"db_value": "",
"fixable": false
},
{
"severity": "INFO",
"check_id": "C-08",
"message": "Retired DB workstream 'adhoc-2026-08-11@retired-20260827' (id=bc6dd3e3\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
"file_path": "",
"db_id": "bc6dd3e3-ab2b-567a-9574-30d2650f20a2",
"file_value": "",
"db_value": "",
"fixable": false
},
{
"severity": "INFO",
"check_id": "C-08",
"message": "Retired DB workstream 'ops-warden-adhoc-2026-06-27@retired-20260827' (id=142b171b\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
"file_path": "",
"db_id": "142b171b-c34b-4a45-91a5-c77e6d07ec6f",
"file_value": "",
"db_value": "",
"fixable": false
},
{
"severity": "INFO",
"check_id": "C-08",
"message": "Retired DB workstream 'adhoc-2026-07-07@retired-20260827' (id=2e8bc783\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
"file_path": "",
"db_id": "2e8bc783-2e37-4b86-a691-177b18329783",
"file_value": "",
"db_value": "",
"fixable": false
},
{
"severity": "WARN",
"check_id": "C-28",
"message": "2 unread inbox message(s) older than 3 day(s): the-custodian:23172cb2, the-custodian:51e9eace",
"file_path": "",
"db_id": "",
"file_value": "",
"db_value": "",
"fixable": false
},
{
"severity": "WARN",
"check_id": "C-28",
"message": "3 unread message(s) lack thread_id for supersession tracking: the-custodian:d422aecb, the-custodian:23172cb2, the-custodian:51e9eace",
"file_path": "",
"db_id": "",
"file_value": "",
"db_value": "",
"fixable": false
}
],
"fixes_applied": [
"bindings: synced 51/51",
"C-17 cleared: pushed 6 backlogged commit(s)",
"C-11 skipped: task 'WARDEN-WP-0038-T01' in finished workstream \u2014 not created",
"push: pushed"
],
"summary": {
"fail": 0,
"automation_error": 0,
"warn": 8,
"info": 5
},
"result": "warn"
}

View file

@ -0,0 +1,3 @@
........................................................................ [ 80%]
.................. [100%]
90 passed in 4.74s

View file

@ -0,0 +1,93 @@
from pathlib import Path
import hashlib,json,re,subprocess,sys
p=Path(__file__).resolve().parent;r=Path('/home/worsch/ops-warden')
f=p.parent/'warden-1.3-kernel-fixes-r1'; review=json.loads((p.parent/'warden-1.3-kernel-review-r2/kernel-review-r2.json').read_text())
w=Path('/tmp/warden-kernel-source-integration-r1')
base='117fec9241e7b985dfb187b992e173d0a5dc3700'; branch='5abde817775d6304e3cf5a46948717a1606981bf'
def git(root,*a):return subprocess.check_output(['git','-C',str(root),*a],stderr=subprocess.PIPE,text=True,timeout=60).strip()
assert git(r,'rev-parse','HEAD')==base
assert git(r,'rev-parse','warden-1.3-kernel')==branch
assert git(r,'ls-remote','origin','refs/heads/main').split()[0]==base
assert not w.exists()
assert hashlib.sha256((f/'candidate.patch').read_bytes()).hexdigest()=='1a3530a1e469fc03c2c29f1b66fa3ba1904e56bf2abcfb242c7a2ed015fb3e74'
assert hashlib.sha256((f/'test-isolation-proposal.patch').read_bytes()).hexdigest()=='0f6c46303ec24f337e4190ec84773ccefb4833241233b4b7d56bd1927eba838c'
original_work=(r/'WORK-RECORDS.md').read_bytes(); original_index=git(r,'ls-files','--stage','--','WORK-RECORDS.md')
(p/'WORK-RECORDS.md.backup').write_bytes(original_work)
git(r,'worktree','add','--detach',str(w),branch)
for file in ['candidate.patch','test-isolation-proposal.patch']:
git(w,'apply','--check',str(f/file));git(w,'apply',str(f/file))
for file,want in review['inputs']['candidate_files_verified'].items():
assert hashlib.sha256((w/file).read_bytes()).hexdigest()==want.split(':')[-1]
for file,want in review['inputs']['unchanged_pins_verified'].items():
assert hashlib.sha256((w/file).read_bytes()).hexdigest()==want.split(':')[-1]
name='workplans/WARDEN-WP-0044-security-case-follow-through.md'
old=(w/name).read_text();(p/'workplan.preimage.md').write_text(old)
new=old+"""
## T03 source correction and safe-test follow-through — 2026-10-17
The reviewed KERNEL-2/3 source now authenticates and parses the actual catalog
snapshot, checks lane owner/risk/delegation, and resolves each type step's Warden,
attended or owner dispatch mode. Four proposed attended-change lanes remain
DRAFT; no lane is promoted and PARAMETER_PINS still contains only 1.1/1.2.
Independent review KR1-F1/F2 found cached attended run/rollback/reconcile could
lose the human/runtime boundary, and actual admission lacked the planner's
establishing-login checks. The exact successor retains the mode and authenticated
catalog bytes and repeats caller/session, agent marker and attended-lane checks
before any journal write or callback on all three operations. Planner and executor
share active/reviewed login/session-lane validation. Two unresolved Apps session
lanes correctly remain refused. Integration tests now explicitly disclose all
fixture authority substitutions; they establish no owner or native authority.
The new 19-test regression matrix reproduces 13 failures on its predecessor and
passes on the candidate. A fresh independent reviewer adds changed-authority and
catalog-snapshot probes: 90 focused checks and six guarded integration checks
pass; the combined predecessor comparison has 22 expected failures. Author's
isolated full suite passes 765 with four integration-marked tests deselected.
Evidence: Custodian warden-1.3-kernel-fixes-r1 and warden-1.3-kernel-review-r2
under docs/changes/netkingdom-target-2026-10-17. Original unsuccessful review,
invalid setup attempts and unknown ambient-lookup outcome are retained.
A separate reviewed test-only fix stubs ambient OpenBao identity in access CLI
unit tests and adds a synthetic sentinel regression which fails before any
subprocess can launch on the predecessor; 26 access/helper checks pass. The real
production helper is unchanged. The first old review's unisolated launches may
have invoked ambient `bao token lookup`; remote reach/success remain unknown,
with no secret displayed. This patch does not erase that adverse outcome.
Explicit remaining safe-test work is retained in this live T03 scope, owned by
ops-warden: replace or wrap the ordinary unit-test entry path with allowlisted
environment/empty synthetic HOME and guarded subprocess/network execution,
including nested validator children. Completion requires representative access
and case tests to refuse token-file/environment and live provider access under
synthetic negative controls while permitted local fixtures remain usable. Until
then use the preserved isolated review runner, not the ambient `make test` path.
No credential lookup, live investigation or rotation is authorized by this note.
T03 remains progress; contained sessions, authenticated owner provenance,
materialization, exact type acknowledgment/pin and first native case remain open.
"""
assert re.findall(r'```task\n.*?```',old,re.S)==re.findall(r'```task\n.*?```',new,re.S)
(w/name).write_text(new)
# Repeat the independently reviewed focused cases with an empty allowlisted HOME.
probe=p.parent/'warden-1.3-kernel-review-r2/reviewer-probes.py'
(w/'tests/test_review_r2_independent.py').write_bytes(probe.read_bytes())
home=p/'test-home';home.mkdir()
env={'HOME':str(home),'PATH':'/usr/bin:/bin','PYTHONDONTWRITEBYTECODE':'1','PYTHONPATH':'/tmp/warden-kernel-review-r2/guard:'+str(w/'src'),'LANG':'C.UTF-8'}
with (p/'focused-tests.txt').open('w') as log:
result=subprocess.run(['/tmp/warden-kernel-review-r1/final/.venv/bin/python','-B','-m','pytest','-q','-p','no:cacheprovider','tests/test_review_r2_independent.py','tests/test_case_attended_boundary.py','tests/test_case_admission_modes.py','tests/test_access.py','tests/test_openbao_caller.py'],cwd=w,env=env,stdout=log,stderr=subprocess.STDOUT,timeout=120)
assert result.returncode==0,'guarded focused tests failed; preserve worktree'
paths=[*review['inputs']['candidate_files_verified'],'tests/test_access.py',name]
git(w,'diff','--check')
run=subprocess.run(['git','-C',str(w),'add','--',*paths],capture_output=True,text=True);assert run.returncode==0
run=subprocess.run(['git','-C',str(w),'commit','--only','-m','fix(case): preserve attended authority at dispatch and validate session lanes','--',*paths],capture_output=True,text=True,timeout=240)
(p/'commit.json').write_text(json.dumps({'exit_code':run.returncode,'stdout':run.stdout,'stderr':run.stderr},indent=2)+'\n')
assert run.returncode==0,'normal commit refused'
head=git(w,'rev-parse','HEAD')
assert set(git(w,'diff-tree','--no-commit-id','--name-only','-r',head).splitlines())==set(paths)
assert git(r,'rev-parse','HEAD')==base and git(r,'ls-remote','origin','refs/heads/main').split()[0]==base
assert (r/'WORK-RECORDS.md').read_bytes()==original_work and git(r,'ls-files','--stage','--','WORK-RECORDS.md')==original_index
git(r,'merge','--ff-only',head)
assert (r/'WORK-RECORDS.md').read_bytes()==original_work and git(r,'ls-files','--stage','--','WORK-RECORDS.md')==original_index
(p/'integration.json').write_text(json.dumps({'status':'integrated-source-not-published','base':base,'draft_branch':branch,'head':head,'paths':paths,'unchanged_original_workplan_tasks':4,'ambient_owner_dirt_preserved':True,'catalog_promotion':False,'PARAMETER_PINS_changed':False,'native_action':False,'test_result':(p/'focused-tests.txt').read_text()},indent=2)+'\n')
print(json.dumps({'status':'integrated','head':head,'paths':len(paths),'focused_tests':'passed','native_action':False}))

View file

@ -0,0 +1,22 @@
{
"status": "integrated-source-not-published",
"base": "117fec9241e7b985dfb187b992e173d0a5dc3700",
"draft_branch": "5abde817775d6304e3cf5a46948717a1606981bf",
"head": "ae7bc73b4f4bac22454144959b870d161498e0af",
"paths": [
"src/warden/case_run.py",
"src/warden/case_type.py",
"src/warden/routing/models.py",
"tests/test_case_1_3_integration.py",
"tests/test_case_admission_modes.py",
"tests/test_case_attended_boundary.py",
"tests/test_access.py",
"workplans/WARDEN-WP-0044-security-case-follow-through.md"
],
"unchanged_original_workplan_tasks": 4,
"ambient_owner_dirt_preserved": true,
"catalog_promotion": false,
"PARAMETER_PINS_changed": false,
"native_action": false,
"test_result": "........................................................................ [ 80%]\n.................. [100%]\n90 passed in 4.74s\n"
}

View file

@ -0,0 +1,296 @@
{
"ok": true,
"status": "applied",
"repo_slug": "ops-warden",
"commit": "922c26da0f3fcb0182352ea83e6ae06f29878580",
"requests": 2,
"elapsed_ms": 12875.5,
"git": {
"upstream": "origin/main",
"behind": 0,
"ahead": 0
},
"identifiers": {
"schema": "repo-manager.identifier-assignment.v1",
"ok": true,
"executed": true,
"repo": "ops-warden",
"namespace": "helixforge",
"assignments": [
{
"kind": "task",
"record_id": "WARDEN-WP-0038-T01",
"uuid": "ef28df7c-2c72-56be-ad90-4e079f37639f",
"path": "workplans/WARDEN-WP-0038-plan-mutation-intent.md"
}
],
"historical_invalid_identifiers": [],
"historical_identity_collisions": [],
"files_changed": [
"workplans/WARDEN-WP-0038-plan-mutation-intent.md"
]
},
"receipt": {
"schema": "state-hub.repository-projection-reconcile.v1",
"instance_role": "primary",
"instance_label": "railiance01",
"expected_commit": "922c26da0f3fcb0182352ea83e6ae06f29878580",
"derived_commit": "922c26da0f3fcb0182352ea83e6ae06f29878580",
"outcome": {
"schema": "state-hub.projection-reset.v1",
"repo_slug": "ops-warden",
"commit": "922c26da0f3fcb0182352ea83e6ae06f29878580",
"status": "applied",
"counts": {
"created": 0,
"updated": 51,
"retired": 0,
"refused": 0,
"released": 0,
"created_tasks": 0,
"updated_tasks": 0,
"cancelled_tasks": 0,
"created_edges": 0,
"removed_edges": 0,
"unresolved_edges": 0,
"external_edges": 17
},
"created": [],
"updated": [
"WARDEN-WP-0001",
"WARDEN-WP-0002",
"WARDEN-WP-0003",
"WARDEN-WP-0004",
"WARDEN-WP-0005",
"WARDEN-WP-0006",
"WARDEN-WP-0007",
"WARDEN-WP-0008",
"WARDEN-WP-0009",
"WARDEN-WP-0010",
"WARDEN-WP-0011",
"WARDEN-WP-0012",
"WARDEN-WP-0013",
"WARDEN-WP-0014",
"WARDEN-WP-0015",
"WARDEN-WP-0016",
"WARDEN-WP-0017",
"WARDEN-WP-0018",
"WARDEN-WP-0019",
"WARDEN-WP-0020",
"WARDEN-WP-0021",
"WARDEN-WP-0022",
"WARDEN-WP-0023",
"WARDEN-WP-0024",
"WARDEN-WP-0025",
"WARDEN-WP-0026",
"WARDEN-WP-0027",
"WARDEN-WP-0028",
"WARDEN-WP-0029",
"WARDEN-WP-0030",
"WARDEN-WP-0031",
"WARDEN-WP-0032",
"WARDEN-WP-0033",
"WARDEN-WP-0034",
"WARDEN-WP-0035",
"WARDEN-WP-0036",
"WARDEN-WP-0037",
"WARDEN-WP-0038",
"WARDEN-WP-0039",
"WARDEN-WP-0040",
"WARDEN-WP-0041",
"WARDEN-WP-0042",
"WARDEN-WP-0043",
"WARDEN-WP-0044",
"WARDEN-WP-ADHOC-2026-06-27",
"WARDEN-WP-ADHOC-2026-06-29",
"WARDEN-WP-ADHOC-2026-07-07",
"WARDEN-WP-ADHOC-2026-08-11",
"WARDEN-WP-ADHOC-2026-08-17",
"WARDEN-WP-ADHOC-2026-09-08",
"WARDEN-WP-ADHOC-2026-10-03"
],
"retired": [],
"released": [],
"created_tasks": [],
"updated_tasks": [],
"cancelled_tasks": [],
"created_edges": [],
"removed_edges": [],
"unresolved_edges": [],
"external_edges": [
{
"workplan": "WARDEN-WP-0032",
"from": "WARDEN-WP-0032",
"target": "WARDEN-WP-0031",
"relationship_type": "blocks",
"from_workplan_id": "38c6a5f3-fb0d-5230-be85-f9e3ffc850f6",
"from_task_id": null,
"to_workplan_id": "739bad25-2345-5f4f-aaa3-cc4cd8c71f6c",
"to_task_id": null
},
{
"workplan": "WARDEN-WP-0037",
"from": "WARDEN-WP-0037-T03",
"target": "SECRETS-WP-0006-T06",
"relationship_type": "starts_after",
"from_workplan_id": "42a097db-1c24-558e-a724-030bb2b4443e",
"from_task_id": "a8b1b855-ab34-5835-b9fd-5f48bc0b6817",
"to_workplan_id": null,
"to_task_id": "1431edae-5791-5892-8c4b-829419b537d2"
},
{
"workplan": "WARDEN-WP-0033",
"from": "WARDEN-WP-0033",
"target": "WARDEN-WP-0030",
"relationship_type": "blocks",
"from_workplan_id": "4627d89b-4b00-562a-81e9-76e96f90fa7e",
"from_task_id": null,
"to_workplan_id": "da3367d5-890c-52c6-aa54-1bdd0f277342",
"to_task_id": null
},
{
"workplan": "WARDEN-WP-0013",
"from": "WARDEN-WP-0013",
"target": "WARDEN-WP-0011",
"relationship_type": "blocks",
"from_workplan_id": "4678c41a-c1d0-48cd-9988-4ea0380e8258",
"from_task_id": null,
"to_workplan_id": "0a520f8e-01b4-48f1-9af3-2f3f69fd0672",
"to_task_id": null
},
{
"workplan": "WARDEN-WP-0013",
"from": "WARDEN-WP-0013",
"target": "WARDEN-WP-0009",
"relationship_type": "blocks",
"from_workplan_id": "4678c41a-c1d0-48cd-9988-4ea0380e8258",
"from_task_id": null,
"to_workplan_id": "9213b262-e2f5-480e-a5bc-56635d5eb4c9",
"to_task_id": null
},
{
"workplan": "WARDEN-WP-0013",
"from": "WARDEN-WP-0013",
"target": "WARDEN-WP-0008",
"relationship_type": "blocks",
"from_workplan_id": "4678c41a-c1d0-48cd-9988-4ea0380e8258",
"from_task_id": null,
"to_workplan_id": "a174963a-4ff1-4565-b19f-896cd4ff14a0",
"to_task_id": null
},
{
"workplan": "WARDEN-WP-0013",
"from": "WARDEN-WP-0013",
"target": "WARDEN-WP-0010",
"relationship_type": "blocks",
"from_workplan_id": "4678c41a-c1d0-48cd-9988-4ea0380e8258",
"from_task_id": null,
"to_workplan_id": "e93de9fd-0192-4d02-bb7c-5e859fb76b9b",
"to_task_id": null
},
{
"workplan": "WARDEN-WP-0031",
"from": "WARDEN-WP-0031",
"target": "WARDEN-WP-0007",
"relationship_type": "blocks",
"from_workplan_id": "739bad25-2345-5f4f-aaa3-cc4cd8c71f6c",
"from_task_id": null,
"to_workplan_id": "3718ac07-2fa2-47d0-a02a-c9a7b83a5ba9",
"to_task_id": null
},
{
"workplan": "WARDEN-WP-0038",
"from": "WARDEN-WP-0038",
"target": "WARDEN-WP-0029",
"relationship_type": "blocks",
"from_workplan_id": "751ad530-e44b-52c4-b70e-cb47568a0179",
"from_task_id": null,
"to_workplan_id": "bbb3d9ec-d88d-5088-b4c0-55bfba0a10cf",
"to_task_id": null
},
{
"workplan": "WARDEN-WP-0023",
"from": "WARDEN-WP-0023",
"target": "WARDEN-WP-0022",
"relationship_type": "blocks",
"from_workplan_id": "7bad1ec4-a7c2-4980-b8f9-49a7f5408574",
"from_task_id": null,
"to_workplan_id": "fc8afa28-68a7-4250-a19e-9754829f0cd5",
"to_task_id": null
},
{
"workplan": "WARDEN-WP-0034",
"from": "WARDEN-WP-0034",
"target": "WARDEN-WP-0030",
"relationship_type": "blocks",
"from_workplan_id": "ae3ff76f-883d-5e2f-b6aa-144d61e8fdef",
"from_task_id": null,
"to_workplan_id": "da3367d5-890c-52c6-aa54-1bdd0f277342",
"to_task_id": null
},
{
"workplan": "WARDEN-WP-0040",
"from": "WARDEN-WP-0040",
"target": "WARDEN-WP-0032",
"relationship_type": "blocks",
"from_workplan_id": "c8ee441e-1be1-5219-910c-e79ff23cc9ec",
"from_task_id": null,
"to_workplan_id": "38c6a5f3-fb0d-5230-be85-f9e3ffc850f6",
"to_task_id": null
},
{
"workplan": "WARDEN-WP-0040",
"from": "WARDEN-WP-0040",
"target": "WARDEN-WP-0034",
"relationship_type": "blocks",
"from_workplan_id": "c8ee441e-1be1-5219-910c-e79ff23cc9ec",
"from_task_id": null,
"to_workplan_id": "ae3ff76f-883d-5e2f-b6aa-144d61e8fdef",
"to_task_id": null
},
{
"workplan": "WARDEN-WP-0040",
"from": "WARDEN-WP-0040-T03",
"target": "WARDEN-WP-0040-T01",
"relationship_type": "starts_after",
"from_workplan_id": "c8ee441e-1be1-5219-910c-e79ff23cc9ec",
"from_task_id": "93eaf1f2-daaa-5e22-8804-85ca9433571c",
"to_workplan_id": null,
"to_task_id": "611f0901-9fb5-5954-8dd0-a860c5f0cbec"
},
{
"workplan": "WARDEN-WP-0044",
"from": "WARDEN-WP-0044-T04",
"target": "WARDEN-WP-0044-T03",
"relationship_type": "starts_after",
"from_workplan_id": "f7e81013-6868-5d99-8528-ba75a442eca9",
"from_task_id": "4a0fa4a7-5ca9-518a-ab92-a79a5e2cf93e",
"to_workplan_id": null,
"to_task_id": "bcbf6c91-2c04-5c16-ae8c-5d6c06fd6b89"
},
{
"workplan": "WARDEN-WP-0044",
"from": "WARDEN-WP-0044-T03",
"target": "MASON-WP-0010-T03",
"relationship_type": "starts_after",
"from_workplan_id": "f7e81013-6868-5d99-8528-ba75a442eca9",
"from_task_id": "bcbf6c91-2c04-5c16-ae8c-5d6c06fd6b89",
"to_workplan_id": null,
"to_task_id": "56cea6be-c613-586c-80cd-125340b374da"
},
{
"workplan": "WARDEN-WP-0044",
"from": "WARDEN-WP-0044-T03",
"target": "WARDEN-WP-0044-T02",
"relationship_type": "starts_after",
"from_workplan_id": "f7e81013-6868-5d99-8528-ba75a442eca9",
"from_task_id": "bcbf6c91-2c04-5c16-ae8c-5d6c06fd6b89",
"to_workplan_id": null,
"to_task_id": "5f68c991-f490-58f8-a121-92f74073d272"
}
],
"refused": [],
"notes": []
}
}
}

View file

@ -0,0 +1,64 @@
from pathlib import Path
import hashlib,json,subprocess,urllib.request,re
p=Path(__file__).resolve().parent;r=Path('/home/worsch/ops-warden')
cfg=json.loads((p/'integration.json').read_text());head=cfg['head']
def git(*a):return subprocess.check_output(['git','-C',str(r),*a],stderr=subprocess.PIPE,text=True,timeout=90).strip()
assert git('rev-parse','HEAD')==head
assert git('ls-remote','origin','refs/heads/main').split()[0] in {cfg['base'],head}
backup=p/'consistency-backup';assert not backup.exists();backup.mkdir()
files=[r/'.custodian-brief.md',r/'WORK-RECORDS.md',*sorted((r/'workplans').rglob('*.md'))]
rows=[]
for f in files:
if not f.exists():continue
n=str(f.relative_to(r));dst=backup/n;dst.parent.mkdir(parents=True,exist_ok=True);dst.write_bytes(f.read_bytes())
rows.append({'path':n,'sha256':hashlib.sha256(f.read_bytes()).hexdigest(),'index':git('ls-files','--stage','--',n)})
(p/'consistency-preimage.json').write_text(json.dumps(rows,indent=2)+'\n')
try:
result=subprocess.run(['statehub','fix-consistency','--repo','ops-warden','--no-writeback','--json'],cwd=r,capture_output=True,text=True,timeout=300)
(p/'consistency.json').write_text(result.stdout);(p/'consistency.stderr.txt').write_text(result.stderr)
assert result.returncode==0,'required consistency failed'
data=json.loads(result.stdout);assert data.get('fail',data.get('summary',{}).get('fail',0))==0
finally:
for row in rows:
n=row['path'];f=r/n;old=(backup/n).read_bytes()
if f.read_bytes()!=old:
(p/('changed-'+n.replace('/','-'))).write_bytes(f.read_bytes());f.write_bytes(old)
if git('ls-files','--stage','--',n)!=row['index']:
mode,oid,stage,name=row['index'].split();assert stage=='0';git('update-index','--cacheinfo',mode,oid,name)
assert hashlib.sha256(f.read_bytes()).hexdigest()==row['sha256']
assert git('rev-parse','HEAD')==head
result=subprocess.run(['/home/worsch/repo-manager/.venv/bin/rmgr','sync','--path',str(r),'--push'],capture_output=True,text=True,timeout=180)
(p/'normal-sync.json').write_text(result.stdout);(p/'normal-sync.stderr.txt').write_text(result.stderr)
if result.returncode:
text=result.stdout+result.stderr
assert 'WARDEN-WP-0038-T01' in text and ('UUID' in text or 'uuid' in text),'unexpected sync refusal; stop'
assert git('ls-remote','origin','refs/heads/main').split()[0] in {cfg['base'],head}
push=subprocess.run(['git','-C',str(r),'push','origin','main'],capture_output=True,text=True,timeout=120)
(p/'source-push.json').write_text(json.dumps({'exit_code':push.returncode,'stdout':push.stdout,'stderr':push.stderr},indent=2)+'\n')
assert push.returncode==0,'normal source push refused'
else:
data=json.loads(result.stdout);assert data.get('status') in {'applied','noop'}
assert git('ls-remote','origin','refs/heads/main').split()[0]==head
body={'expected_commit':head,'acknowledge_retirements':False}
request=urllib.request.Request('http://127.0.0.1:8000/repos/ops-warden/work-record-projection/reconcile',data=json.dumps(body).encode(),headers={'Content-Type':'application/json','X-StateHub-Component':'ops-warden'},method='POST')
with urllib.request.urlopen(request,timeout=120) as response: receipt=json.load(response)
(p/'receiver-receipt.json').write_text(json.dumps(receipt,indent=2)+'\n')
assert receipt['ok'] and receipt['status'] in {'applied','noop'}
rp=receipt['receipt'];assert rp['expected_commit']==rp['derived_commit']==head
assert (rp['instance_role'],rp['instance_label'])==('primary','railiance01')
assert rp['outcome']['counts']['retired']==0
name='workplans/WARDEN-WP-0044-security-case-follow-through.md';text=(r/name).read_text()
blocks=re.findall(r'```task\n.*?```',text,re.S)
assert len(blocks)==4
bindings=[]
for b in blocks:
tid=re.search(r'state_hub_task_id: "(.*?)"',b).group(1);status=re.search(r'^status: (.+)$',b,re.M).group(1)
with urllib.request.urlopen('http://127.0.0.1:8000/tasks/'+tid,timeout=15) as response:task=json.load(response)
assert task['status']==status
bindings.append({'record_id':task.get('record_id'),'id':tid,'status':status})
for row in rows:
assert hashlib.sha256((r/row['path']).read_bytes()).hexdigest()==row['sha256']
assert git('ls-files','--stage','--',row['path'])==row['index']
verification={'status':'published-and-projected','head':head,'primary_task_bindings':bindings,'preserved_files_and_index':len(rows),'normal_allocator_refusal_preserved':result.returncode!=0,'catalog_promotion':False,'PARAMETER_PINS_changed':False,'native_actions':False}
(p/'verification.json').write_text(json.dumps(verification,indent=2)+'\n')
print(json.dumps(verification))

View file

@ -0,0 +1,53 @@
{
"status": "published-and-projected",
"implementation_commit": "ae7bc73b4f4bac22454144959b870d161498e0af",
"final_published_commit": "922c26da0f3fcb0182352ea83e6ae06f29878580",
"normal_allocator_assignment": [
{
"kind": "task",
"record_id": "WARDEN-WP-0038-T01",
"uuid": "ef28df7c-2c72-56be-ad90-4e079f37639f",
"path": "workplans/WARDEN-WP-0038-plan-mutation-intent.md"
}
],
"allocator_commit_only_adds_missing_uuid": true,
"preserved_other_files_and_index": 52,
"primary_task_bindings": [
{
"id": "ef0920fc-418e-52cb-acff-9a5c0c728bf5",
"record_id": "WARDEN-WP-0044-T01",
"status": "done",
"needs_human": false
},
{
"id": "5f68c991-f490-58f8-a121-92f74073d272",
"record_id": "WARDEN-WP-0044-T02",
"status": "done",
"needs_human": false
},
{
"id": "bcbf6c91-2c04-5c16-ae8c-5d6c06fd6b89",
"record_id": "WARDEN-WP-0044-T03",
"status": "progress",
"needs_human": false
},
{
"id": "4a0fa4a7-5ca9-518a-ab92-a79a5e2cf93e",
"record_id": "WARDEN-WP-0044-T04",
"status": "wait",
"needs_human": false
},
{
"id": "ef28df7c-2c72-56be-ad90-4e079f37639f",
"record_id": "WARDEN-WP-0038-T01",
"status": "done",
"needs_human": false
}
],
"retired": 0,
"cancelled": 0,
"native_actions": false,
"catalog_promotion": false,
"PARAMETER_PINS_changed": false,
"prior_attempt": "publish.py stopped at stale expected-head assertion after normal rmgr sync succeeded and assigned missing historical UUID; no retry, rewrite or duplicate sync needed."
}

View file

@ -0,0 +1,312 @@
---
id: WARDEN-WP-0044
type: workplan
title: "Follow through on KnownSecurityCases along their type's route"
domain: infotech
repo: ops-warden
status: active
flavor: implementation
owner: claude-code
topic_slug: netkingdom
created: "2026-10-08"
updated: "2026-10-11"
depends_on: []
related_repos:
- net-kingdom
- ops-mason
- key-cape
- railiance-platform
state_hub_workstream_id: "f7e81013-6868-5d99-8528-ba75a442eca9"
---
# WARDEN-WP-0044 — Follow through on KnownSecurityCases along their type's route
## Why
NetKingdom is introducing SecurityCaseTypes (net-kingdom `NK-WP-0048`, canon
`security-case-types_v0.1`, proposed). Once a case of an implemented type is
accepted and ops-mason has materialized its structure (`MASON-WP-0010`),
ops-warden carries out the remaining steps. These are the owners' declared entry
points, run on the authentication path the type defines, followed by the type's
verification.
Today ops-warden routes needs and, for `exec_capable` lanes, proxies fetches as
the caller. It does not yet know about cases, and each new integration ends with
a founder running a hand-written script (for example the proposed KEY-WP-0038-T02
rollout). This plan gives ops-warden the follow-through role, without widening
what it may do: each step still runs under its owner's entry point and the
caller's identity.
## Tasks
```task
id: WARDEN-WP-0044-T01
status: done
depends_on: [NK-WP-0048-T03]
priority: high
state_hub_task_id: "ef0920fc-418e-52cb-acff-9a5c0c728bf5"
```
### T01 — Define the type's follow-through section
Propose the `follow_through` part of the SecurityCaseType schema together with
net-kingdom. For each step it names the owner entry point, `warden_executes`,
the auth method and lane, whether an attended human login is unavoidable (with
the type's justification), and the verification command. Write it for the first
type, `oidc-browser-relying-party`, covering key-cape client registration,
custody minting and LLDAP group membership.
2026-10-08: NK-WP-0048-T03/T04 landed with a drafted section. Review is in
`history/2026-10-08-oidc-rp-follow-through-review.md`. It requires three
changes before T02: a per-step `lane`, a narrow `warden_executes`, and
`value_handling`. It also lists four refinements. This task is done when
net-kingdom acknowledges the review (NK-WP-0048-T05).
2026-10-09: R4 was withdrawn in favour of ops-mason's per-case
`{consuming_service}-keycape-client`, with the entry body templated in the type
(R4′, see the addendum in the review).
2026-10-09: the revised 1.0 type and canon now carry R1–R3, R4′, R5–R7.
`warden case check-type <type.yaml>` (`src/warden/case_type.py`, tests in
`tests/test_case_type.py`) checks a type's follow-through mechanically: the
live type is schema-conformant, with one attended session
(`key-cape-oidc-login`). It is not yet plannable, because two lanes are not
in the catalog: `identity-provisioner-groups` (net-kingdom) and
`keycape-client-secret-generate` (railiance-platform). These gate T02, not
T01. T01 still closes on net-kingdom's acknowledgement (NK-WP-0048-T05).
2026-10-09: ops-warden cannot add `identity-provisioner-groups` as the type
declares it. The provisioner accepts only user-engine's runtime token and
admits only user-engine pods, so no caller-identity path exists. R8 (review
addendum) asks net-kingdom either to move `ensure-groups` into the existing
attended session (recommended) or to give the provisioner an operator
credential. `keycape-client-secret-generate` needs a generate-in-custody entry
point from railiance-platform, and the broker does not have one yet. Both were
sent to their owners.
2026-10-09: done. net-kingdom took R8 option 1, so `ensure-groups` runs attended
in the `register-client` session and `identity-provisioner-groups` is dropped
(net-kingdom `0e86f95`). The founder acknowledged the type with memo r4 (hub
decision `e418263e`, NK-WP-0048-T05 done).
```task
id: WARDEN-WP-0044-T02
status: done
depends_on: [WARDEN-WP-0044-T01]
priority: high
state_hub_task_id: "5f68c991-f490-58f8-a121-92f74073d272"
```
### T02 — Plan a case run
`warden case plan <case.yaml>` checks that the case is accepted and materialized,
resolves each step to its catalog entry and entry point, and prints the run:
which steps warden executes, which run as the attended caller, what the
verification is. No secret values; no execution.
Tests: refuse an unaccepted or unmaterialized case; refuse a step whose catalog
entry is missing or not reviewed; show attended steps explicitly.
2026-10-09: done. `warden case plan <case.yaml> [--type] [--json]`
(`src/warden/case_plan.py`, 14 tests in `tests/test_case_plan.py`). It refuses:
- a case that is not `materialized`, or has no acceptance record
- a type that is mismatched or not acknowledged
- any `case check-type` finding, including a missing or unreviewed lane
- undeclared, type-fixed or secret-sensitivity parameters
- a placeholder the case does not set, or an unsupported `when`
It fills type defaults (`issuer`), evaluates `<param> == <value>` conditions,
renders owner, entry point, auth and ready_check, groups attended steps per
lane, and lists the applicable verification.
The live Forgejo case is correctly refused: it is `accepted`, not
materialized. A materialized copy, with a stand-in lane for
`keycape-client-secret-generate`, renders six steps: two attended steps plus
`register-client` in one `key-cape-oidc-login` session, one warden step
(`mint-secret`), and two owner steps. Seven checks follow.
Observation for net-kingdom (not blocking): `bind-env` runs before
`register-client`, in type order. Its entry carries a literal
`KEYCAPE_<CLIENT_ID>_CLIENT_SECRET`, which is not a `{param}` placeholder, so it
reaches the plan unrendered.
2026-10-09 follow-up:
- **Format specs.** `_render` supports net-kingdom's `{param:env}` spec (upper
case, `-` as `_`, the same as `keycape-client.py env_name`) and refuses any
other spec or `!conversion`.
- **Case reference.** The plan prints `case-ref: <case_id>@sha256:<hex>` over the
case file's exact bytes. This is the reference proposed to railiance-platform
for `credential.py generate --case-ref` (RPF-WP-0054-T01); the broker
re-derives it from the file.
- 18 tests now.
```task
id: WARDEN-WP-0044-T03
status: progress
depends_on: [WARDEN-WP-0044-T02, MASON-WP-0010-T03]
blocking_reason: "Local durable execution kernel and injected failure harness implemented. Native acceptance still requires authenticated owner machine descriptors/adapters, actual Forgejo materialization receipt, contained session integration, ordered verification and first native run."
priority: high
state_hub_task_id: "bcbf6c91-2c04-5c16-ae8c-5d6c06fd6b89"
```
### T03 — Run and verify a case
`warden case run <case.yaml>` executes the plan. Owner entry points run through
the existing proxy as the caller; steps that need an attended login use the
existing contained login envelope (silent command, session revoked afterwards),
grouped into as few attended sessions as possible. Then it runs the type's
verification and writes a receipt without values. `warden case rollback`
reverses exactly this case's steps.
Acceptance: the Forgejo reference case (NK-WP-0048-T06) reaches `live` through
this path, with no case-specific script.
2026-10-17: original-intent lookup/context interface for NK-WP-0048-T15, source
and synthetic tests only. `src/warden/case_run.py`: `Executor.run` writes an
`OriginalIntent` (schema `warden.case.original-intent.v1`: the dispatched run
Invocation — attempt, step, owner, target, actor, principal, lane, all six pins,
tenant, realm — plus admitted adapter source) in the same SQLite transaction as
the pre-dispatch journal row. `Journal.original_intent(binding, current, source)`
returns it after restart and refuses on a missing record or any
pins/source/step/owner/target/actor/principal/lane/tenant/realm mismatch, before any
journal write, so the step stays uncertain. An adapter's
`reconcile_original(ReconcileContext(original, attempt))` receives the original
intent separately from the new reconcile attempt. This is Warden's record of what
it dispatched, not owner created-only provenance. Current Executor.admit leaves
tenant/realm empty; the reserved coordinates establish no admitted provenance.
Owner descriptors/adapters, contained session integration, Forgejo
materialization and the native run remain open.
2026-10-17 source consistency follow-through: retained the additive intents table
and reconcile_original callback and fixed four reproduced local defects: original
actor mismatch, payload/SQL attempt-ID mismatch, orphan intent without its
matching original running receipt, and arbitrary nonmetadata values accepted by
the original-intent serializer. Exact bounded field validation, duplicate-free
bounded decode and save-time intent/invocation/running-state equality now preserve
the original receipt linkage before owner lookup. No new context store, native
verifier, trust root, adapter activation or authority migration was introduced.
The actual canonical focused kernel and new consistency suite passes 54 checks;
owner-installed Ruff check/format passes. The existing generated-data/synthetic
owner fixture and a distinct interpreter prove source correspondence/refusal,
not independent native custody or creation. Earlier comparison probes and failed
preparation are retained. Current caller and fresh session/grant revocation checks
remain required; original owner payload/revocation, exact native readback and
created-only provenance still need independent authenticated owner admission.
No JSON/SQL context, unknown tenant/realm, changed run-sheet or legacy missing
intent supplies recovery, replay or undo authority. T03 remains progress and all
native acceptance gates/statuses/dependencies/UUIDs remain unchanged. Evidence:
Custodian original-context-compare-r2 and original-context-owner-followthrough-r3
under docs/changes/netkingdom-target-2026-10-17/; publication/projection is separate.
Agreed with railiance-platform (RPF-WP-0054-T01, 2026-10-09):
- `mint-secret` runs `credential.py generate --grant keycape/client-secret-generate
--client-id <id> --case-ref <case-ref> --case-file <case.yaml>` as the caller's
child process. The broker re-derives the case-ref and checks status and
client_id.
- warden refuses that step when `WARDEN_AGENT_ID` is set.
2026-10-10: railiance-platform implemented the command (RPF-WP-0054-T03). It is
catalogued as draft `keycape-client-secret-generate`, with `exec_owner`
railiance-platform and `exec_capable: false`. `warden case check-type` now
reports the lane as LANE-UNREVIEWED rather than LANE-MISSING. Before it can be
activated:
- the founder binds the issuer policy to the operator OIDC role
- key-cape confirms the secret format
- the RPF-WP-0054-T05 probe passes
2026-10-10 (later):
- **Broker lane.** The issuer role is bound (CCR-2026-0043) and the T05 probe
passed (railiance-platform `21b8af3`). Only key-cape's format confirmation is
left. The playbook now includes the issuer-role login, a 15m token with
unlimited uses that `warden case run` must group with the attended session.
- **Env spec.** net-kingdom adopted `{client_id:env}` as a 1.0 patch
(`9a9b8e3`). The plan renders `KEYCAPE_FORGEJO_CLIENT_SECRET`.
- **Forgejo case.** Rendered and built by ops-mason. It is not yet
`materialized`: MASON-WP-0010-T03 waits on the railiance-platform CCRs and
their founder apply.
2026-10-10: `keycape-client-secret-generate` activated on railiance-platform's
go-ahead (message 20973a9c) after key-cape confirmed the format (4e0213b3).
`warden case check-type` on the live type now reports `plannable=True`. The
only thing T03 still waits on is the Forgejo case reaching `materialized`
(MASON-WP-0010-T03).
2026-10-10: net-kingdom moved the type to 1.1 (`e2174ce`) and re-pinned the
Forgejo case. 1.1 adds the verification `consumer-enforces-groups` and requires
the hand-over to enforce `access_groups`. `check-type` on 1.1 reports
`plannable=True`, and a materialized copy renders six steps and the new check.
The case-ref digest covers the whole case file, including `status`, so it
changes when the case becomes `materialized`. `warden case run` therefore takes
it from the file at run time, and the broker re-derives it from the same file.
```task
id: WARDEN-WP-0044-T04
status: wait
depends_on: [WARDEN-WP-0044-T03]
blocking_reason: "Catalog integration follows a proven run."
priority: medium
state_hub_task_id: "4a0fa4a7-5ca9-518a-ab92-a79a5e2cf93e"
```
### T04 — Catalog entries from types
Let a type contribute reviewed catalog entries once, so that every case of that
type routes without a new catalog edit. Cases add parameter values, not routes.
`warden route find` should be able to answer "which SecurityCaseType covers this
need?" before anyone builds by hand.
2026-10-10 consolidation source prototype (not an accepted owner adapter API):
`src/warden/case_receipt_state.py` provides a pure immutable receipt reducer,
with exact case/type/adapter/catalog/acceptance/run-sheet pins, running intent
before dispatch, uncertain recovery after a lost result, no success replay,
explicit retry-safe failed-before-change retry and created-only reverse undo.
It executes nothing and accepts no command output. The caller must durably
persist running before any future side effect; storage/authenticated owner
receipts/live adapters are not implemented. Focused offline tests cover changed
pins, lost receipts, retry/refusal, uncertain rollback and shared-object
preservation. Source proposal: `docs/security-case-execution-proposal.md`.
T03 remains open: typed owner execution/receipt contracts require review, the
Forgejo structural materialization needs owner receipts, and CLI dispatch,
contained sessions, native verification and provenance remain unimplemented.
There is a circularity to resolve with net-kingdom/ops-mason: materialization
cannot require mint-secret if mint-secret is itself a follow-through step whose
planning requires materialized. No case status is changed by this prototype.
2026-10-11: the exact execution-design memo version1 has confirmed native human
acceptance (approval e46b149b-ec3c-4b3b-98a7-dcb4934448ca). The approved proposal
bytes remain unchanged. `src/warden/case_run.py` now implements a closed v1 local
execution seam, independent admission/evidence callbacks, private transactional
SQLite receipt storage, process locking, running-before-dispatch, crash recovery
to uncertainty, explicit safe retry, separately required broker-grant and parent-session revocation
proofs, native owner reconciliation and created-only
reverse rollback. Thirty-seven kernel tests and fourteen reducer tests pass;
ruff checks pass. See `docs/security-case-execution-kernel-v1.md` for exact scope
and receipt provenance. No installed native adapter or live CLI execution is
claimed. Current prose types stay plan-only; acknowledged descriptor/type machine
seams and authenticated owner/caller receipts are still required. T03 progresses
for implementation but cannot finish before ordered native Forgejo acceptance.
2026-10-16 source preparation (isolated checkout; no native acceptance):
T03's browser parameter mismatch now has a producer-validator-backed projection
in `case_inputs.py`, explicitly configured on the real Executor. Exact 1.1/1.2
parameter definitions and all four reviewed producer modules are pinned; full case
validation admits reviewed security-sensitive metadata while unknown/fixed/secret
inputs and type/producer drift refuse. Only the reviewed descriptor target
reaches the owner callback; no parameter journal payload is added. Actual
Executor/producer tests cover positive versions and refusal/containment paths.
Acknowledged machine descriptors, authenticated owner evidence, real Forgejo
materialization and contained native sessions remain mandatory and unimplemented;
T03 stays progress, T04 stays wait. No type or case status changed.
2026-10-16 producer source refresh: independently reviewed NetKingdom
`015694ee414c802dc2ef1fa0120dfed610086e69` optional descriptor-map repair.
Only the validator/evidence source pins change; exact parameter and transitive
source identity remain enforced. Actual canonical producer, Executor and reducer
suite passes 87 checks, including 14 new malformed-map integration cases; all
four missing/changed modules still refuse. Review:
`docs/reviews/2026-10-16-browser-producer-pin-refresh.md`. No adapter attestation,
native acceptance, credential use or privileged dispatch. T03 remains progress.

View file

@ -0,0 +1,5 @@
{
"exit_code": 0,
"stdout": "[detached HEAD b593c87] test: isolate ordinary unit runs from ambient credentials and provider I/O\n 14 files changed, 592 insertions(+), 6 deletions(-)\n create mode 100644 docs/development/safe-unit-tests.md\n create mode 100644 scripts/run_unit_tests.py\n create mode 100644 tests/fixtures/workload-coverage/provenance.json\n create mode 100644 tests/fixtures/workload-coverage/rapp-core-hub/declarations/rapp.yaml\n create mode 100644 tests/fixtures/workload-coverage/rapp-issue-core/declarations/rapp.yaml\n create mode 100644 tests/fixtures/workload-coverage/rapp-qonto/declarations/rapp.yaml\n create mode 100644 tests/test_safe_unit_runner.py\n create mode 100644 tests/unit_isolation_probe.py\n",
"stderr": ""
}

View file

@ -0,0 +1,140 @@
{
"repo_slug": "ops-warden",
"repo_path": "/home/worsch/ops-warden",
"source_revision": "b593c879831378db7dc62adfabdfedf2d44ddd38",
"source_revision_reason": null,
"issues": [
{
"severity": "WARN",
"check_id": "C-24",
"message": "Repo classification advisory: capability_tag 'security' is not a recommended family tag (allowed, check for synonym)",
"file_path": "",
"db_id": "",
"file_value": "",
"db_value": "",
"fixable": false
},
{
"severity": "WARN",
"check_id": "C-42",
"message": "Blocked workplan 'warden-wp-0027' has no task in status wait \u2014 nothing states what it waits for; qualify a wait task or re-status the workplan",
"file_path": "workplans/WARDEN-WP-0027-credential-governance-lockdown.md",
"db_id": "21528e8d-a049-523d-9ae1-da7a27cb8bbf",
"file_value": "blocked",
"db_value": "",
"fixable": false
},
{
"severity": "WARN",
"check_id": "C-37",
"message": "Residual workplan 'warden-wp-0034' has no origin/origin_ref provenance (not invented)",
"file_path": "workplans/WARDEN-WP-0034-layer-model-v07-conformance.md",
"db_id": "ae3ff76f-883d-5e2f-b6aa-144d61e8fdef",
"file_value": "",
"db_value": "",
"fixable": false
},
{
"severity": "WARN",
"check_id": "C-40",
"message": "blocker satisfied, task still wait: 'WARDEN-WP-0037-T03' in workplan 'WARDEN-WP-0037' \u2014 decision 1591daa1-6e85-4dfd-aadd-5a9fe1ef47fa is resolved",
"file_path": "workplans/WARDEN-WP-0037-whynot-design-forgejo-npm-lane.md#WARDEN-WP-0037-T03",
"db_id": "",
"file_value": "1591daa1-6e85-4dfd-aadd-5a9fe1ef47fa",
"db_value": "",
"fixable": false
},
{
"severity": "WARN",
"check_id": "C-37",
"message": "Residual workplan 'warden-wp-0040' has no origin/origin_ref provenance (not invented)",
"file_path": "workplans/WARDEN-WP-0040-unknown-zone-fail-closed-adoption.md",
"db_id": "c8ee441e-1be1-5219-910c-e79ff23cc9ec",
"file_value": "",
"db_value": "",
"fixable": false
},
{
"severity": "INFO",
"check_id": "C-08",
"message": "Retired DB workstream 'adhoc-2026-06-29@retired-20260828' (id=1c0460b7\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
"file_path": "",
"db_id": "1c0460b7-bc8a-48db-96d4-681bce18ac91",
"file_value": "",
"db_value": "",
"fixable": false
},
{
"severity": "INFO",
"check_id": "C-08",
"message": "Retired DB workstream 'adhoc-2026-08-17@retired-20260827' (id=8376eb89\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
"file_path": "",
"db_id": "8376eb89-36f2-52b0-a59a-2954b2e49349",
"file_value": "",
"db_value": "",
"fixable": false
},
{
"severity": "INFO",
"check_id": "C-08",
"message": "Retired DB workstream 'adhoc-2026-08-11@retired-20260827' (id=bc6dd3e3\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
"file_path": "",
"db_id": "bc6dd3e3-ab2b-567a-9574-30d2650f20a2",
"file_value": "",
"db_value": "",
"fixable": false
},
{
"severity": "INFO",
"check_id": "C-08",
"message": "Retired DB workstream 'ops-warden-adhoc-2026-06-27@retired-20260827' (id=142b171b\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
"file_path": "",
"db_id": "142b171b-c34b-4a45-91a5-c77e6d07ec6f",
"file_value": "",
"db_value": "",
"fixable": false
},
{
"severity": "INFO",
"check_id": "C-08",
"message": "Retired DB workstream 'adhoc-2026-07-07@retired-20260827' (id=2e8bc783\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
"file_path": "",
"db_id": "2e8bc783-2e37-4b86-a691-177b18329783",
"file_value": "",
"db_value": "",
"fixable": false
},
{
"severity": "WARN",
"check_id": "C-28",
"message": "2 unread inbox message(s) older than 3 day(s): the-custodian:23172cb2, the-custodian:51e9eace",
"file_path": "",
"db_id": "",
"file_value": "",
"db_value": "",
"fixable": false
},
{
"severity": "WARN",
"check_id": "C-28",
"message": "3 unread message(s) lack thread_id for supersession tracking: the-custodian:d422aecb, the-custodian:23172cb2, the-custodian:51e9eace",
"file_path": "",
"db_id": "",
"file_value": "",
"db_value": "",
"fixable": false
}
],
"fixes_applied": [
"bindings: synced 51/51",
"C-17 cleared: pushed 1 backlogged commit(s)",
"push: pushed"
],
"summary": {
"fail": 0,
"automation_error": 0,
"warn": 7,
"info": 5
},
"result": "warn"
}

View file

@ -0,0 +1,14 @@
{
"exit_code": 0,
"command": [
"make",
"test",
"UNIT_PYTHON=/home/worsch/ops-warden/.venv/bin/python",
"PHASE_MEMORY_REPO=/home/worsch/phase-memory",
"TEST_ARGS=--netkingdom-root /home/worsch/net-kingdom -q"
],
"expected": "785 passed,4 deselected",
"log_sha256": "75563bad2656a7566a7913cbacab6178c3943b9ed8f28ff6796dffe5e53da4a7",
"synthetic_parent_environment": true,
"real_credentials_or_provider_calls": false
}

View file

@ -0,0 +1,65 @@
from pathlib import Path
import hashlib,json,re,subprocess
p=Path(__file__).resolve().parent;r=Path('/home/worsch/ops-warden');w=Path('/tmp/warden-safe-unit-integration-r1')
a=p.parent/'warden-safe-unit-runner-r1';v=p.parent/'warden-safe-unit-runner-review-r1'
author=json.loads((a/'implementation.json').read_text());review=json.loads((v/'review-r1.json').read_text());base=author['base']
def git(root,*args):return subprocess.check_output(['git','-C',str(root),*args],stderr=subprocess.PIPE,text=True,timeout=60).strip()
def sha(f):return hashlib.sha256(f.read_bytes()).hexdigest()
assert git(r,'rev-parse','HEAD')==base and git(r,'ls-remote','origin','refs/heads/main').split()[0]==base
assert sha(a/'candidate.patch')=='1fe65076ce7e633be304fc779bf2c87b7ee1e4e460de55ca74355b5842d036f5'
assert sha(v/'reviewer-correction.patch')=='9407289f8da41ed6fff367baf566ad30f5510a2627c14e0ac0cf971bf9b465c9'
assert not w.exists()
protected={}
for name in ['WORK-RECORDS.md','.custodian-brief.md']:
protected[name]={'sha256':sha(r/name),'index':git(r,'ls-files','--stage','--',name)}
(p/(name+'.backup')).write_bytes((r/name).read_bytes())
git(r,'worktree','add','--detach',str(w),base)
for packet,file in [(a,'candidate.patch'),(v,'reviewer-correction.patch')]:
git(w,'apply','--check',str(packet/file));git(w,'apply',str(packet/file))
expected={row['path']:row['after_sha256'] for row in author['files']}
for name,row in review['correction']['files'].items():expected[name]=row['after_sha256'].split(':')[-1]
for name,want in expected.items():assert sha(w/name)==want,name
for name,want in review['protected_source_hashes'].items():assert sha(w/name)==want.split(':')[-1],name
# Root source disposition: accept the minimal reviewed corrections; original
# rejection and both negative controls stay preserved. This is test hygiene only.
(p/'root-disposition.json').write_text(json.dumps({'original_candidate':'rejected as reviewed','corrected_candidate':'accepted for source revalidation','fixes':['Classify O_TRUNC and O_APPEND opens as writes before the OS open.','Check closed fixture projection set and every recorded byte digest in default unit selection.'],'candidate_sha256':sha(a/'candidate.patch'),'correction_sha256':sha(v/'reviewer-correction.patch'),'remaining_limits':review['limits'],'native_acceptance':False},indent=2)+'\n')
sentinel=p/'synthetic-parent-home';sentinel.mkdir();(sentinel/'.vault-token').write_text('synthetic-never-a-real-token')
env={'HOME':str(sentinel),'PATH':'/usr/bin:/bin','BAO_TOKEN':'synthetic-never-a-real-token','VAULT_TOKEN':'synthetic-never-a-real-token','PYTHONPATH':'/synthetic-untrusted-pythonpath','PYTEST_ADDOPTS':'--synthetic-invalid-if-inherited','LANG':'C.UTF-8'}
cmd=['make','test','UNIT_PYTHON=/home/worsch/ops-warden/.venv/bin/python','PHASE_MEMORY_REPO=/home/worsch/phase-memory','TEST_ARGS=--netkingdom-root /home/worsch/net-kingdom -q']
with (p/'full-unit-tests.log').open('w') as log:
result=subprocess.run(cmd,cwd=w,env=env,stdout=log,stderr=subprocess.STDOUT,timeout=180)
text=(p/'full-unit-tests.log').read_text()
(p/'full-unit-result.json').write_text(json.dumps({'exit_code':result.returncode,'command':cmd,'expected':'785 passed,4 deselected','log_sha256':sha(p/'full-unit-tests.log'),'synthetic_parent_environment':True,'real_credentials_or_provider_calls':False},indent=2)+'\n')
assert result.returncode==0 and re.search(r'785 passed, 4 deselected',text),'corrected ordinary suite failed; preserve scratch and logs'
name='workplans/WARDEN-WP-0044-security-case-follow-through.md';old=(w/name).read_text()
new=old+"""
2026-10-17 root follow-through: the original safe-runner source candidate was
independently rejected for O_TRUNC open-write misclassification and unchecked
public fixture projection hashes. Both counterexamples are retained. The minimal
correction treats truncating/appending opens as writes and adds the closed
projection-byte provenance regression. Root inspected the two exact corrections
and ran ordinary make test on stable corrected source with only synthetic parent
HOME/token/Python/pytest sentinels: 785 passed, four deselected. No real credential
or native provider action occurred. Initial author failures and rejected review
are preserved in the Custodian warden-safe-unit-runner-r1 and
warden-safe-unit-runner-review-r1 packets, with root disposition/full result in
warden-safe-unit-integration-r1. This completes the known trusted-unit-entry
accident-prevention follow-through; direct pytest bypass, native/non-open/preopened
file-descriptor limits remain explicit. No OS sandbox, isolated agent assignment,
production grant or native T03 acceptance follows. T03 stays progress.
"""
assert re.findall(r'```task\n.*?```',old,re.S)==re.findall(r'```task\n.*?```',new,re.S)
(w/name).write_text(new)
paths=list(expected)
git(w,'diff','--check');git(w,'add','--',*paths)
result=subprocess.run(['git','-C',str(w),'commit','--only','-m','test: isolate ordinary unit runs from ambient credentials and provider I/O','--',*paths],capture_output=True,text=True,timeout=240)
(p/'commit.json').write_text(json.dumps({'exit_code':result.returncode,'stdout':result.stdout,'stderr':result.stderr},indent=2)+'\n');assert result.returncode==0,'normal commit refused'
head=git(w,'rev-parse','HEAD');assert set(git(w,'diff-tree','--no-commit-id','--name-only','-r',head).splitlines())==set(paths)
assert git(r,'rev-parse','HEAD')==base and git(r,'ls-remote','origin','refs/heads/main').split()[0]==base
for name,row in protected.items():assert sha(r/name)==row['sha256'] and git(r,'ls-files','--stage','--',name)==row['index']
git(r,'merge','--ff-only',head)
for name,row in protected.items():assert sha(r/name)==row['sha256'] and git(r,'ls-files','--stage','--',name)==row['index']
for name,want in review['protected_source_hashes'].items():assert sha(r/name)==want.split(':')[-1]
(p/'integration.json').write_text(json.dumps({'status':'integrated-corrected-source-not-published','base':base,'head':head,'paths':paths,'source_and_catalog_pins_unchanged':True,'owner_dirt_preserved':True,'original_four_task_blocks_preserved':True,'full_unit_tests':'785 passed,4 deselected','native_actions':False},indent=2)+'\n')
print(json.dumps({'status':'integrated','head':head,'files':len(paths),'tests':'785 passed,4 deselected','production_src_catalog_pin_changes':False}))

View file

@ -0,0 +1,26 @@
{
"status": "integrated-corrected-source-not-published",
"base": "922c26da0f3fcb0182352ea83e6ae06f29878580",
"head": "b593c879831378db7dc62adfabdfedf2d44ddd38",
"paths": [
"Makefile",
"scripts/run_unit_tests.py",
"tests/test_safe_unit_runner.py",
"tests/unit_isolation_probe.py",
"tests/test_layer_conformance.py",
"tests/test_workload_join.py",
"tests/test_case_plan.py",
"tests/test_case_type.py",
"docs/development/safe-unit-tests.md",
"workplans/WARDEN-WP-0044-security-case-follow-through.md",
"tests/fixtures/workload-coverage/provenance.json",
"tests/fixtures/workload-coverage/rapp-core-hub/declarations/rapp.yaml",
"tests/fixtures/workload-coverage/rapp-issue-core/declarations/rapp.yaml",
"tests/fixtures/workload-coverage/rapp-qonto/declarations/rapp.yaml"
],
"source_and_catalog_pins_unchanged": true,
"owner_dirt_preserved": true,
"original_four_task_blocks_preserved": true,
"full_unit_tests": "785 passed,4 deselected",
"native_actions": false
}

View file

@ -0,0 +1,19 @@
from pathlib import Path
import hashlib,json,subprocess
p=Path(__file__).resolve().parent;r=Path('/home/worsch/ops-warden')
i=json.loads((p/'integration.json').read_text());head=i['head']
def git(*a):return subprocess.check_output(['git','-C',str(r),*a],text=True).strip()
assert git('rev-parse','HEAD')==head
assert git('ls-remote','origin','refs/heads/main').split()[0]==i['base']
assert json.loads((p/'full-unit-result.json').read_text())['exit_code']==0
cfg={'owner':'ops-warden','base_revision':i['base'],'message':'test: isolate ordinary unit runs from ambient credentials and provider I/O','files':[{'path':name,'sha256':hashlib.sha256((r/name).read_bytes()).hexdigest()} for name in i['paths']]}
(p/'publication-inputs.json').write_text(json.dumps(cfg,indent=2)+'\n')
commit=json.loads((p/'commit.json').read_text());assert commit['exit_code']==0
commit.update(commit=head,base=i['base'],files=cfg['files'])
(p/'publication-commit.json').write_text(json.dumps(commit,indent=2)+'\n')
b=p/'publication-backup';assert not b.exists();b.mkdir()
rows=[]
for name in ['.custodian-brief.md','WORK-RECORDS.md']:
(b/(name+'.worktree')).write_bytes((r/name).read_bytes());rows.append({'path':name,'index':git('ls-files','--stage','--',name)})
(b/'originals.json').write_text(json.dumps(rows,indent=2)+'\n')
print(json.dumps({'prepared_normal_publication_for':head,'files':len(i['paths'])}))