Skip to content
This repository was archived by the owner on Sep 25, 2026. It is now read-only.

Preserve UCF evidence and failure records before workspace cleanup - #6

Merged
sinethxyz merged 1 commit into
mainfrom
ucf-evidence-retention
Sep 25, 2026
Merged

sinethxyz merged 1 commit into
mainfrom
ucf-evidence-retention

Conversation

@sinethxyz

@sinethxyz sinethxyz commented Sep 25, 2026 •

Copy link
Copy Markdown
Owner

Purpose

A bounded reliability pass before converging the historical RunEngine onto the UCF runtime. The previous adapter persisted a patch checksum but not the actual patch, then removed its worktree. Exceptions also bypassed outcome journaling.

Changes

  • Persist plans before implementation, independently captured Git patches, complete verification/review reports, and retrievable evidence references.
  • Capture tracked edits/deletions and non-ignored additions, including binaries and literal filenames, using a temporary index that leaves the actual index untouched.
  • Freshly observe state even when a prior snapshot is supplied; reject stale or cross-environment state and detect mutations during verification.
  • Journal failed/cancelled operations with phase and exception type, retain partial work, and preserve the primary exception if journaling also fails.
  • Journal normal decisions before cleanup; record cleanup warnings separately from the verification verdict.
  • Use atomic local artifact replacement and add journal reload support.
  • Add 30 focused tests, including actual Git patch replay after cleanup and a fresh-process journal reload followed by a second real file-backed transition.
  • Expand CI coverage and limit duplicate workflow runs.

Verified validation

GitHub Actions run 36138567006 completed successfully for head 8a421e54c5b60b209383146c5c6899369f69eaa7 against main 2639b8ebeeb485950a8faed17491b03ff440b354 on Python 3.12.14:

  • Editable install: passed.
  • Python compilation: passed.
  • Targeted Ruff checks: passed.
  • Foundation/adapter/integrity subset: 51 passed in 1.33 seconds.
  • Full repository regression suite: 525 passed, 2774 warnings in 8.10 seconds.

The 51 targeted tests are included in the 525 total, not additional. This PR adds 30 tests over the previous 495-test baseline. The existing warnings remain: datetime.utcnow deprecations and three unawaited AsyncMock warnings in legacy verification tests; this PR does not claim warning-free validation.

The 30 new focused tests also passed locally on Python 3.13. Local validation used the available focused module set rather than a full dependency install; GitHub Actions provides the full actual-repository validation.

Model and verifier behavior in the new tests is deterministic test code, not live LLM validation. Git operations, worktree cleanup, artifact storage, patch replay and fresh-process journal reload are real. No paid model calls or production deployment were performed.

Explicit boundaries

See docs/evidence-retention.md. This is not crash-resume, exactly-once execution, comprehensive verifier coverage, production readiness, or adoption/deployment of worktree changes. The historical base_ref/HEAD limitation and advisory REQUEST_CHANGES policy remain documented blockers for later runtime convergence. The historical RunEngine is not migrated in this PR. No historical commits are rewritten.

Status: ready for review with green CI; left open and unmerged. Main remains unchanged by this pass.

Persist retrievable plans, Git patches, verification reports and outcomes before cleanup. Re-observe state, retain workspaces on processing/persistence failures, and exercise reload, replay and failure paths with deterministic real-file tests. Keep RunEngine convergence, deployment and crash recovery out of scope.
sinethxyz added a commit that referenced this pull request Sep 25, 2026
Lead with the original continuity problem, distinguish merged evidence from open PR #6, preserve the prior README verbatim, and document the remaining owner-admin and licence decisions. No runtime, package, workflow, or historical commit changes.
@sinethxyz
sinethxyz merged commit 6cc52e5 into main Sep 25, 2026
1 check passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant