Refactors composer to store hunks and safety state in webview host #4583
+81
−120
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.
This is to prevent entire diffs being passed back from the app via IPC for commands like auto-compose, generate commit message, finish and commit, etc.
One thing I noticed is that the diff contents have artifacts from serialization and this can break the safety checks and the diff hashes, causing false positive errors on safety state. Also, it seems expensive to pass massive payloads like this over IPC for these ops anyway.
We still need to pass the hunks with their diffs through to the app for rendering content, but that should be the only purpose of the hunk contents in app state.
Lots of regression risk here i.e. with undo/reset history, reload, all AI ops, finish & commit, etc. so lots of testing required.