-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Refactor diff viewer onto Pierre React primitives #5308
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
Open
lawrencecchen
wants to merge
50
commits into
main
Choose a base branch
from
task-diff-viewer-react-components
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
50 commits
Select commit
Hold shift + click to select a range
6efaa2c
Move diff viewer status into React state
lawrencecchen 8bb8098
Refactor diff viewer onto Pierre React primitives
lawrencecchen e32358b
Hide diff viewer lifecycle effects behind hooks
lawrencecchen 2264854
Render diff viewer icons as React SVG
lawrencecchen 1d0c0fe
Keep diff copy feedback out of status overlay
lawrencecchen 438560d
Address diff viewer React review feedback
lawrencecchen a4624e5
Preserve clipboard fallback on write failure
lawrencecchen 1aadcef
Use external Pierre diff worker asset
lawrencecchen 846934a
Restore diff navigation select styling hooks
lawrencecchen 4ba4b0c
Address diff viewer copy review feedback
lawrencecchen 51ee179
Fix repeated-path diff item ids
lawrencecchen 19d1351
Sync Pierre worker render options
lawrencecchen 304cd79
Fix diff viewer navigation and CodeView viewport
lawrencecchen 4d945c3
Address diff viewer menu accessibility feedback
lawrencecchen e8bd0d5
Fix appended Pierre tree git status fallback
lawrencecchen 0ad95e9
Use exclusive Pierre tree selection
lawrencecchen d73885b
Sync Pierre worker asset version
lawrencecchen 066c501
Copy JavaScript diff viewer worker assets
lawrencecchen 9cf96b4
Allow diff viewer JavaScript worker assets
lawrencecchen ae6033e
Localize unnamed diff file fallback
lawrencecchen 287d9ac
Allow diff viewer JS assets in custom scheme
lawrencecchen 03dfd5b
Keep diff visible on copy failure
lawrencecchen 74d571e
Avoid redundant diff worker option sync
lawrencecchen 7454c5b
Avoid rebuilding diff file tree per batch
lawrencecchen ab900fd
Restore full file tree status after reset
lawrencecchen ffe6549
Improve diff viewer sidebar ergonomics
lawrencecchen a1148de
Add diff viewer stress samples
lawrencecchen e984010
Use local git for diff stress samples
lawrencecchen f1c0072
Localize diff viewer copy failure
lawrencecchen ac24014
Use historical bases for stress diffs
lawrencecchen 01a7d6b
Reduce diff viewer hot-path churn
lawrencecchen b8d7c6b
Tighten diff viewer streaming updates
lawrencecchen 8ea122d
Preserve diff tree append planning
lawrencecchen 5a8a920
Bind diff viewer server reuse to current executable
lawrencecchen 50e0d44
Fix diff viewer tree lanes and semantic colors
lawrencecchen 62e8d51
Merge remote-tracking branch 'origin/main' into task-diff-viewer-reac…
lawrencecchen 87f9558
Fix diff viewer toolbar overflow
lawrencecchen 3213c1b
Make diff viewer code surface transparent
lawrencecchen dbe7678
Avoid full tree prep during diff streaming
lawrencecchen 9b65c3c
Normalize diff separator backgrounds
lawrencecchen 19351af
Fix diff stress sample setup and tree reset prep
lawrencecchen d648439
Use full tree status for coalesced stream updates
lawrencecchen 86a5a07
Keep diff separator labels visible
lawrencecchen eeead53
Restore Pierre diff separator text and token colors
lawrencecchen 9913209
Give diff file headers a readable surface
lawrencecchen c46565f
Use Pierre separator surface for file headers
lawrencecchen f7c1525
Force file header surface above Pierre defaults
lawrencecchen 5b7f9ce
Bound diff worker pool size
lawrencecchen 528fe3d
Tighten diff viewer React sync
lawrencecchen 2ae83fc
Satisfy React Doctor on diff viewer sync
lawrencecchen 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
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
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.
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.
When the diff viewer is restored through
cmux-diff-viewer://, this.jsworker URL is resolved to a custom-scheme asset, but the app-side scheme handler still rejectstext/javascriptallowlist entries unless the request path ends in.mjs(Sources/Panels/BrowserPanel.swift:2777-2783). Since the manifest now includesworker-portable.js,registerFromManifestfails and restored/local custom-scheme diff viewers cannot load the bundled worker; update the scheme handler’s extension check alongside the CLI/server change.Useful? React with 👍 / 👎.
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.
Fixed in current head. The custom-scheme handler now accepts text/javascript for both .mjs and .js paths, so worker-portable.js can load after restore.
— Claude Code
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.
Already covered in the current code: BrowserPanel.pathExtensionMatchesMimeType accepts text/javascript for both .mjs and .js, so worker-portable.js is allowed by the custom-scheme handler.
— Claude Code