Repository navigation
fix: prevent concurrent clipboard output overwrites - #1
Merged
Merged
Conversation
lukisch
pushed a commit
that referenced
this pull request
Oct 13, 2026
Bündelt seit v0.1.0: exklusive Reservierung der Ausgabenamen gegen gleichzeitiges Überschreiben (PR #1), explizit gebauter Strg+V-Shortcut, Pyright-Gate in der CI, README-Banner. Tests lokal: 114 bestanden, 1 Skip. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BfUhfdEbH7pbmq3ALYy8aa
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two simultaneous clipboard materializations could choose the same apparently free filename and overwrite each other. A failed text/image/copy write also left an incomplete output behind.
Text, Markdown, HTML, images and file copies now write to a private exclusive stage, then reserve the final name with
O_CREAT | O_EXCL. Existing names, directories and dangling symlinks advance the normal_2,_3suffix. Beforeos.replace, the converter verifies both entries against identities captured from its own file descriptors. Cleanup removes only files with a proven owned identity and handles readonly attributes copied onto its stage. Successful earlier files in a batch remain available if a later copy fails.naming.unique_pathretains its existing suggestion-only API.Validation: 113 tests passed and one native Windows symlink test skipped for missing privilege (1314). Native checks include a real Qt PNG encoder, readonly sources/stages, existing directories, a foreign hardlink replacing the reservation, parallel writers for all five output forms, cleanup/reporting failures and partial batches. The initial 12 regression cases produce 9 failures, 2 passes and the same 1 skip on original main. Pyright checks package and tests with zero errors. Independent review is pending; documentation states placeholder visibility, crash/TOCTOU limits and separately scoped config/recent/retention behavior.
The canonical clone's existing
CONTRIBUTING.mdedit is excluded and preserved. No executable release, real clipboard/tray acceptance or model/network access is claimed.