Skip to content

Publish complete CLI artifacts atomically without overwrites - #70

Merged
EauDoon merged 2 commits into
mainfrom
fix/atomic-cli-artifact-output-20261015
Oct 15, 2026
Merged

EauDoon merged 2 commits into
mainfrom
fix/atomic-cli-artifact-output-20261015

Conversation

@EauDoon

@EauDoon EauDoon commented Oct 15, 2026

Copy link
Copy Markdown
Owner

Problem

A partial output write failure left a truncated destination. A simulated disk-full write left ten bytes, and every later export retry was refused because the file already existed.

Change

Stage bounded output beside the destination, then publish with an exclusive hard link. Failed writes leave no destination; existing files and symlinks remain untouched. CLI bundle, receipt and report output use the same helper.

Verification

  • npm run check: 289 tests passed.
  • Regressions cover partial-write failure, successful retry, staging cleanup, byte limits, existing files and symlinks.
  • Independently reviewed and tested.

Limits

Requires a writable parent and filesystem hard-link support; unsupported filesystems fail closed. Atomic visibility does not imply fsync/crash durability. This limitation is documented in README. No live connectors, funds, release tags or deployment settings change.

@EauDoon
EauDoon merged commit 72b75e8 into main Oct 15, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant