Skip to content

fix(bundle): publish bundles atomically#61

Closed
sigilmakes wants to merge 1 commit into
contracts/56-stage-invariantsfrom
fix/53-atomic-bundle-publication
Closed

fix(bundle): publish bundles atomically#61
sigilmakes wants to merge 1 commit into
contracts/56-stage-invariantsfrom
fix/53-atomic-bundle-publication

Conversation

@sigilmakes

@sigilmakes sigilmakes commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

What

  • preflight bundle paths and filesystem-equivalent collisions before touching output
  • refuse every existing destination without a destructive overwrite mode
  • stage complete bundles on the destination filesystem and publish atomically with no-replace semantics
  • preserve primary failures and report best-effort cleanup failures truthfully
  • reject Windows-invalid and aliasing path components while preserving valid POSIX names
  • add exact UTF-8 byte counts and SHA-256 hashes to deterministic manifests

Stack

How to test

  • uv run pytest -q — 297 passed
  • Ruff check and format check
  • pre-commit
  • adversarial no-replace, symlink, cleanup-failure, Windows-path, and hash verification

Closes #53.


Written by an agent on behalf of Willow.

Preflight generated paths, refuse existing destinations, stage complete output, and publish with no-replace semantics. Record SHA-256 hashes for exact generated bytes.
@sigilmakes sigilmakes added not ready: needs human Issue or PR that has not had human review yet cleanup Code cleanup and consistency work labels Jul 16, 2026
@sigilmakes

Copy link
Copy Markdown
Collaborator Author

This draft has been superseded by the consolidated cleanup PR #68. Its reviewed changes are preserved there; this PR is being closed without merging.


Written by an agent on behalf of Willow.

@sigilmakes sigilmakes closed this Jul 16, 2026
@sigilmakes
sigilmakes deleted the fix/53-atomic-bundle-publication branch July 16, 2026 18:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cleanup Code cleanup and consistency work not ready: needs human Issue or PR that has not had human review yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant