• Will Chen's avatar
    Detect external changes with deep context (#1888) · 538745d5
    Will Chen 提交于
    <!-- CURSOR_SUMMARY -->
    > [!NOTE]
    > Adds commit-aware deep context by computing hasExternalChanges (via
    latest assistant commit vs current repo + dirty check) and propagating
    commitHash through messages/provider options.
    > 
    > - **Deep Smart Context**:
    > - Add `hasExternalChanges` to `VersionedFiles`; compute by comparing
    latest assistant `commitHash` with `getCurrentCommitHash` and checking
    `isGitStatusClean`.
    > - Make `sourceCommitHash` nullable; add `commitHash` in
    `DyadEngineProviderOptions` and use it when scanning history.
    > - **Chat Handling**:
    > - Include `commitHash` in `messageHistory` and pass through
    `providerOptions['dyad-engine']`.
    > - **Git Utilities**:
    > - New `isGitStatusClean(path)` supporting native git and
    isomorphic-git.
    > - **Tests/Snapshots**:
    > - Mock `getCurrentCommitHash` and `isGitStatusClean`; update snapshot
    to include `hasExternalChanges`.
    > 
    > <sup>Written by [Cursor
    Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
    ad92d9dd5ead941de822e8da59c8819e4db8b775. This will update automatically
    on new commits. Configure
    [here](https://cursor.com/dashboard?tab=bugbot).</sup>
    <!-- /CURSOR_SUMMARY -->
    
    
    
    
    
    
    
    <!-- This is an auto-generated description by cubic. -->
    ---
    ## Summary by cubic
    Detects external code changes in deep context by comparing the latest
    assistant commit with the current repo state. Exposes a
    hasExternalChanges flag so the engine can adapt responses when the
    workspace diverges.
    
    - **New Features**
      - Added hasExternalChanges to VersionedFiles.
    - Computes by comparing the latest assistant commitHash with
    getCurrentCommitHash and checking isGitStatusClean.
    - Passes commitHash through chat messages and dyad-engine
    providerOptions; sourceCommitHash is now nullable.
      - Defaults to true if detection fails (with a warning).
    
    <sup>Written for commit 6ebb0b125c9a3421b4e5673870b204c9cb279265.
    Summary will update automatically on new commits.</sup>
    
    <!-- End of auto-generated description by cubic. -->
    538745d5
git_utils.ts 6.3 KB