-
Notifications
You must be signed in to change notification settings - Fork 74
fix agent share card details #124
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
21 commits
Select commit
Hold shift + click to select a range
c8fce29
fix(agents): show accurate share card details
cynfria 3919fd7
fix(agents): preserve authored card descriptions
cynfria bd0315b
fix(agents): bind legacy replacement to verified file
cynfria 9780f51
fix(agents): use configured model for card copy
cynfria eec6d9c
fix(agents): localize import description fallback
cynfria 139b0b8
fix(agents): normalize snapshot metadata limits
cynfria 9d85135
fix(agents): preserve concurrent legacy edits
cynfria fb64490
fix(agents): restore legacy claim without replacement
cynfria 0d6be19
fix(agents): persist reviewed card descriptions
cynfria fa35602
fix(agents): simplify share card descriptions
cynfria 599f7dc
fix(agents): retain legacy migration backup
cynfria 6a18269
fix(agents): bound portable descriptions by grapheme
cynfria e752161
fix(agents): reserve unique migration backups
cynfria 9428491
fix(agents): pre-bound snapshot card metadata
cynfria a6ac76b
fix(agents): count description punctuation
cynfria 34fc1a5
fix(agents): directly replace exact stale builder
cynfria 5105d4c
fix(agents): preserve v1 snapshot compatibility
cynfria 751a1d7
fix(agents): preserve legacy import descriptions
cynfria c568208
fix(agents): keep fallback descriptions presentational
cynfria 2c4ef41
fix(agents): guard grapheme segmentation
cynfria a7b0e4f
fix(agents): preserve v1 metadata compatibility
cynfria File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
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
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
Large diffs are not rendered by default.
Oops, something went wrong.
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
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
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
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 P1 · Bind verification to replacement (blocking)
The legacy exception re-checks that target still has the historical hash and then calls fs::rename(temp_path, target). Those operations are not atomic. A user or another Berd process can modify or replace agt-builder.md after the hash check but before rename; the rename then replaces the newly user-owned file. This is the original migration data-preservation issue reintroduced by removing the claim flow, and the related resolved automation threads contain no substantive human reply.
User effect: A user saving Agent Builder during startup can lose their edits when Berd replaces the file after validating an earlier version of its contents.
Recommended fix: Use an atomic compare-and-replace strategy that binds authorization to the exact inode/content being replaced, or preserve the target and skip migration whenever it changes. Do not follow a hash check with an unconditional replacement-capable rename.
Test: Deterministically modify or replace target after the final historical-hash check but before publication, then assert the concurrent user file remains byte-for-byte intact and migration does not report success.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 Product decision: replacing the exact known historical Agt. Builder is intentional even if it is concurrently edited during the final check/rename window. Customized files present before verification remain protected by the exact-content signature. We are not adding migration transaction machinery for this accepted edge case.