* feat(Migration): enhance migration summary with total projects count and improve UI feedback
* fix(Migration): clarify update instructions and improve user messaging
* style(ManualCommitForm): adjust text sizes for improved readability
* style(StagingModal): adjust layout and spacing for improved UI consistency
* fix(ManualCommitForm): update clipboard text to include 'cd' command for easier navigation
* fix(ProjectSettingsForm): update repository path copy functionality and add option to open in file system
* fix(ManualCommitForm): enhance file system interaction with tooltips for better user guidance
* fix(ProjectSettingsForm): add tooltip for 'Open in file system' button to enhance user guidance
* fix(GitProjectSyncDropdown): add 'Open folder' action to sync dropdown for easier access to repository path
* fix(Component): display relative path of current issue in modal for better context
* fix(git-service): count only successfully migrated projects in totalProjects
* fix(project-settings-form): platform-aware shell quoting for cd command
* fix(git-project-staging-modal): platform-aware shell quoting for cd command
* fix(project-settings-form): update aria-label to reflect cd command clipboard content
* fix(git-project-staging-modal): update aria-label to reflect shell command clipboard content
* fix(ManualCommitForm): replace tooltip with dialog for enhanced information display
* fix(MigrationView): update migrated count calculation to reflect total projects
---------
Co-authored-by: James Gatz <jamesgatzos@gmail.com>
* feat: add mechanism to flush newer DB workspaces to disk during downgrade
* feat: implement effective Git repository ID handling for project connections
* feat: enhance Git repository ID handling for improved project queries and updates
* Fix style issue that file list in the middle of commit modal is collapsed
* fix: update links to Git Sync documentation in staging modal and project settings form
* squash
* re add comments
* fix process fork
* update base line 18 left
* revert
* check cert url without node
* fix handlerId
* exclude url matches cert host from scope
* fix rebase
* Git server for smoke test
* Try to solve flaky test
* feat: remove unused Git hook samples and add Credentials tab functionality
- Deleted various sample Git hook scripts from the git-server fixture, including post-update, pre-applypatch, pre-commit, pre-merge-commit, pre-push, pre-rebase, pre-receive, prepare-commit-msg, push-to-checkout, sendemail-validate, and update hooks.
- Introduced a new PreferencesCredentialsTab class to manage Git credentials within the Insomnia Preferences.
- Updated the PreferencesPage to include the new Credentials tab for Git credentials management.
- Enhanced the ProjectPage with a method to create a Git Sync project, including branch creation and switching.
- Added comprehensive tests for Git Sync functionality, including creating branches, committing changes, and merging branches.
- Updated UI components to support new features, including data-testid attributes for better testability.
Co-authored-by: Copilot <copilot@github.com>
* feat: update path import and add Git sync tests
* revert package.json
* Update package.json
* feat: add new dependencies for Git HTTP mock server and related utilities
* refactor: remove commented-out code in addAccessTokenGitCredential function
* fix: update export tests to use toHaveLength for file count assertions
---------
Co-authored-by: Copilot <copilot@github.com>
* move sync code to main
* improve sync tests
* update plan
* test: reset cloud sync smoke state
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* guard against bad test env
* fix skill
* remove new test
* udpate plan
* with proxy
* checkpoint
* move files
* autofix
* update plan
* make all sync bridge async
* fix window imports
* refactor: move main-only sync helpers
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix lint
* move chunkArray tests
* smaller interfaces
* move store under vcs
* move cloud-sync to main
* create a second vcs for pull operations
* added a invoke wrapper to remove error prefixes
* rebase error
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* initial support for canonical repo output (#9739)
* Feat/git repo output sync queue (#9790)
* feat: implement SyncQueue for serial async task processing
* refactor: enhance repo file watcher for improved sync and error handling
- Replace NeDB client with a unified disk client for all file operations.
- Introduce a serial queue to manage sync tasks and prevent race conditions.
- Implement content-hash deduplication to avoid unnecessary file imports.
- Add problem tracking for YAML files with conflicts or parse errors.
- Streamline watcher start/stop logic and improve notification handling.
- Ensure immediate DB→FS flush before git operations to maintain consistency.
- Enhance import logic to handle workspace deletions and renames effectively.
* refactor: simplify projectRoutableFSClient by removing unused parameters and consolidating logic
* feat: add git.db-synced event listener for revalidation in Root component
* feat: add button to open local repository folder in ProjectSettingsForm
* refactor: remove unused GitProjectNeDBClient
* refactor: update imports to use services for workspace and workspaceMeta
* refactor: update models usage to services in git repo migration and project settings form
* refactor: streamline file watcher initialization and import process
* feat: ensure immediate processing of pending debounced imports in RepoFileWatcher
* refactor: improve file rename handling in RepoFileWatcher to prevent data loss
* feat: enhance RepoFileWatcher to track last written hash and sync mtime for improved file management
* refactor: remove unused parameters from upsertDocs in RepoFileWatcher for cleaner code
* fix revalidator (#9826)
* fix: handle detached HEAD during rebase in getCurrentBranch method (#9843)
* fix: handle detached HEAD during rebase in getCurrentBranch method
* fix: add return type to getCurrentBranch method
* fix: refresh ui after sync (#9848)
* fix: (git cli)skip flush problematic files (#9846)
* fix: skip flush problematic files
* fix
* feat: (git cli)ux for invalide status (#9836)
* feat: ux for invalide status
* update ux
* fix
* fix
* add tab warning
* del log
* feat(Git Sync): Handle non-origin remotes (#9833)
* feat(git): detect non-origin branch tracking and guard sync operations
- Add getBranchTrackingRemote(), getRemoteUrl(), getBranchRemoteInfo() to GitVCS
- Add getBranchRemoteInfo IPC endpoint with BranchRemoteInfo interface
- Add assertBranchOnOrigin() guard to push, pull, fetch, commitAndPush
- canPushLoader returns { canPush: false } for non-origin branches
- Add unit tests for remote detection methods
* feat(git): add support for non-origin branch tracking and display warnings in UI
* Show local git repo path [INS-2315] (#9858)
* Update the style of local git folder path in project setting modal
* Add Git CLI tip in commit changes modal
* Repo Migration flow [INS-2256] (#9824)
* initial support for canonical repo output (#9739)
* feat: enhance git repository migration with concurrency guard and symlink handling
* feat: enhance git repository migration with config sanitization and file overwrite handling
* feat: implement repo migration version tracking and improve migration idempotency
* feat: add runAllGitRepoMigrations function and migration view for Git projects
Co-authored-by: Copilot <copilot@github.com>
* fix: reset initial migration status to 'default' in MigrationView component
* refactor: simplify MigrationView component and update navigation logic
* refactor: remove legacy directory structure migration from loadGitRepository function
* feat: enhance runAllGitRepoMigrations to return logs and improve error handling in MigrationView
* feat: update runAllGitRepoMigrations to return detailed logs and failed projects; enhance MigrationView to handle migration results
* feat: optimize runAllGitRepoMigrations by batch-fetching git repositories and improving project filtering
* feat: introduce CURRENT_MIGRATION_VERSION constant for migration tracking and update references in git-repo-migration and router
* feat: handle failed projects in runAllGitRepoMigrations by converting them to local projects
Co-authored-by: Copilot <copilot@github.com>
* feat: integrate CURRENT_MIGRATION_VERSION for migration tracking and update router logic to handle migration screen visibility
* feat: reorder import statements in ProjectSettingsForm for consistency
* feat: update MigrationStatus type and related logic for better error handling
* feat: enhance migration logging with detailed error stack and include CURRENT_MIGRATION_VERSION in logs
* feat: simplify migration logging messages for clarity and consistency
* feat: improve migration check logic to prioritize version stamp over disk layout
* feat: add tests for migrateRepoStructureIfNeeded function to ensure migration logic correctness
* feat: update migration logic to re-run when old git/ directory exists, ensuring correct migration handling
* test: update migration tests to ensure directory existence checks are accurate
* refactor: remove redundant useEffect for localStorage in Component
* feat: enhance path validation in runAllGitRepoMigrations to prevent path traversal vulnerabilities
* feat: enhance path handling in migration functions to prevent directory traversal vulnerabilities
* feat: enhance directory traversal protection in moveDirectoryContents function
---------
Co-authored-by: James Gatz <jamesgatzos@gmail.com>
Co-authored-by: Copilot <copilot@github.com>
* fix: Delete old folders (#9867)
* refactor: remove unused migration version handling from localStorage
* fix: update directory removal logic to handle non-empty directories
---------
Co-authored-by: Curry Yang <163384738+CurryYangxx@users.noreply.github.com>
Co-authored-by: yaoweiprc <6896642+yaoweiprc@users.noreply.github.com>
Co-authored-by: Pavlos Koutoglou <pkoutoglou@gmail.com>
Co-authored-by: Copilot <copilot@github.com>
* fix: filter conflict paths to include only YAML files
* fix: enhance conflict resolution by auto-resolving non-YAML files to theirs
* fix: keep buffer raw so that binary files are not corrupted
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix: enhance merge conflict handling by introducing auto-resolved conflicts for non-YAML files
* fix: add test for handling merge conflicts, ensuring only YAML conflicts are returned
* fix: prevent HEAD update during auto-resolve of merge conflicts
* fix: enhance merge conflict resolution by auto-completing merges when all conflicts are non-YAML
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* chore: isolate gRPC proto file preparation behind IPC boundary
Move proto temp-file creation out of the renderer by adding a
grpc.writeProtoFile IPC handler (main process) and wiring it up
in the preload bridge. The renderer's ProtoFilesModal previously
called writeProtoFile() directly, pulling node:fs / node:os /
node:path into the renderer bundle. It now calls
window.main.grpc.writeProtoFile(protoFile._id) instead.
Changes:
- src/main/ipc/electron.ts: add 'grpc.writeProtoFile' to HandleChannels
- src/main/ipc/grpc.ts: export writeProtoFileById helper, add to
gRPCBridgeAPI, register ipcMainHandle('grpc.writeProtoFile')
- src/entry.preload.ts: wire grpc.writeProtoFile via ipcRenderer.invoke
- src/ui/components/modals/proto-files-modal.tsx: remove direct
write-proto-file import; use window.main.grpc.writeProtoFile in
the directory-import validation loop
- config/renderer-node-import-baseline.json: remove 5 stale/resolved
baseline entries (proto-directory-loader.tsx x2 already gone;
write-proto-file.ts fs/os/path x3 now main-process-only)
- src/main/ipc/__tests__/grpc.test.ts: add writeProtoFileById unit
tests as contract coverage for the new privileged bridge path
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: validate proto syntax in writeProtoFileById IPC handler
The directory-import validation loop relied on writeProtoFile for proto
content validation, but writeProtoFile only writes the temp file without
parsing. Add a protoLoader.load call inside writeProtoFileById so invalid
proto syntax throws before the result is returned to the renderer.
Also update the test to mock @grpc/proto-loader.load and assert it is
called with the correct file path and includeDirs.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>