Update diffs to latest 1.3.0-beta.9#116
Merged
Merged
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Patch-only sections now expand unchanged context via the library's partial diff hydration: clicking a hunk separator triggers a fetch over IPC and the FileDiffMetadata is hydrated in place, replacing the eager Load flow that re-parsed the whole section through React state. Loaded contents are kept in a module-level side cache so whitespace re-parses and markdown previews still see full contents. The eager Load flow remains for deferred/too-large sections; diff search keeps preloading patch-only sections into state. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The PR/commit description card was a fake CodeView file item whose body was smuggled through a line annotation, visually stripped with unsafeCSS, and re-measured via a manual layout-pass state. Beta.8's renderCodeViewHeader renders it as a non-virtualized element at the top of the scroll content and re-measures height changes with a ResizeObserver, so the fake item, the layout-pass hack, the unsafeCSS block, and the sourceDescriptionFooterKey threading are all gone. The title bar keeps sticking to the top of the scroller (position: sticky within the card). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Inside CodeView the library hydrates a clone of the partial FileDiffMetadata and keeps it internally, so the app-side cached object never becomes full. Any later item version bump (e.g. creating a comment) re-delivered the stale partial and reset the expanded diff. Evict the parsed-diff cache entry when loaded contents arrive and re-parse via the library's hydratePartialDiff so the rebuilt object has identical hunk geometry to the internal clone — preserving the renderer's expansion state across the swap. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Includes the upstream fix for CodeView partial hydration mutating a clone instead of the caller's object (pierrecomputer/pierre#953), so the parsed-diff cache eviction workaround is no longer needed: cache hits keep returning the object CodeView hydrated in place. The hydrated re-parse branch stays to keep whitespace-toggle re-parses full from the loaded-contents cache. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
amadeus
commented
Jul 9, 2026
Contributor
Author
There was a problem hiding this comment.
tbh, not sure why it deleted all this lol, just lmk if it should stay and i'll get it to add it back
Member
|
arigatou! |
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.
Ports things over to use thew new custom CodeView header api and also take advantage of the new hydration APIs.
You'll see the history updates to 2 different versions, Fable noticed a bit of an issue that was worth resolving in a secondary update.
Pretty much all this code was vibed, and since i don't have a strong understanding of the internals, unclear if this is the correct way forward on this stuff.
If it sucks, blame Fable 🤣