Preserve document draft review state across further edits

Merged
BI
7d ago
+70-3

The draft helper now keeps the review explanation when the source or draft changes after both inputs required review. Reviewed candidate edits and recoverable generations remain preserved, and export stays blocked until explicit resolution.

Also includes the portable test fixture correction for platforms whose system temporary directory resolves through an alias. The production symlink protections remain enforced.

Validation: canonical helper and tests match the project copies; all 27 focused tests passed on Windows and Linux. Existing project checks run on this PR.


Summary by cubic

Fixes the draft helper so the review explanation survives when the source or draft changes again after both inputs already required review.

  • Preserves the retained candidate, source snapshot, and draft snapshot with the original review reason; export stays blocked until --resolved is given.
  • Adds focused tests covering later source-only and draft-only edits.
  • Fixes the test fixture to resolve the temporary root, so the suite passes on platforms whose system temp directory goes through an alias; production symlink protections are unchanged.
  • Updates the ownership-log guidance to follow the owning project's guards for absent logs instead of always blocking; unreadable existing claim stores still block.