railiance-apps/release/content-acceptance-evidence/content-lifecycle-validation-2026-10-31.json
tegwick dc927d7751
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Prepare verified combined Coulomb attachment and content release
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a192e9-c28b-7533-bf25-e2341364c22a
2026-10-31 19:42:01 +01:00

58 lines
2.3 KiB
JSON

{
"schema": "coulomb.content-lifecycle-validation.v1",
"recorded_at": "2026-10-31T11:54:24.215512+00:00",
"status": "source_fix_verified",
"workplan_task": "CSOC-WP-0013-T05",
"bug": "A process exit during attachment creation left bytes absent from the copy/move cleanup journal; the orphan blocked retry.",
"regression_observed_before_fix": {
"baseline": "f70708839cd5ca43310f6891c8d94aaff915139c",
"operations": [
"copy_page",
"transfer_page"
],
"interruption": "partial first attachment flushed, immediate os._exit(86)",
"result": "both failed because the partial destination survived recovery"
},
"fix": [
"Refuse existing attachment entries before recording cleanup authority.",
"Persist intended new attachment name before exclusive creation under the content writer lock.",
"Flush recovery and attachment directory entries before destination publication."
],
"focused_cases": {
"total": 29,
"abrupt_child_process_exit": 14,
"existing_destination_collision": 8,
"prior_retention_and_recovery": 7
},
"full_gate": {
"command": "make check",
"tests": 546,
"failures": 0,
"errors": 0,
"skipped": 0,
"warnings": 69,
"junit_sha256": "dd3d0433c8109f00f6dddd119cfdf8281915f94da2da1f5e6009c31cfe76c65b",
"log_sha256": "eb59a394c95c5307c17069874640d1655ef61c5aa7bb426ef6d21db4929f748e"
},
"files": [
{
"path": "coulomb_social/apps/spaces/pageops.py",
"sha256": "055ef25b5efc75798cf17ffa68739de4d4099d2cab4d041e7c7eacdfaf43803e"
},
{
"path": "tests/test_content_recovery.py",
"sha256": "84a25a22a3cbda397e39c0508db8ea5aa90e6c467ccfa7da2b568d174d1ec449"
}
],
"policy": "User accepted retain-all default and separately reviewed manual cutoff; keep live page and all history of deleted pages.",
"live_purge_authorized": false,
"live_purge_executed": false,
"production_deployed": false,
"productive_acceptance": false,
"limits": [
"Child process termination on synthetic local files is proved; physical power-loss durability is not experimentally proved.",
"Cooperating application/import writers must use the content writer lock.",
"Release delivery and productive copy/move review remain open."
],
"policy_decision_id": "c3a191f2-ce06-483f-82d7-ef8c54ea0d5e"
}