mirror of
https://github.com/Kong/insomnia.git
synced 2026-11-02 11:05:33 -05:00
* fix: Warn when a Git Sync change cannot be discarded [INS-3689] When a committed YAML file is not in the exact format Insomnia generates (hand-edited, or written by an older version), discarding it restores the file, the repo file watcher imports it and re-exports it, and the change reappears. Users get stuck with a change they can never discard. Detect this up front by replaying the import -> export round-trip in memory on the raw index/HEAD content. When the result equals the working copy, the whole diff is Insomnia re-generating the file, so the Commit Changes modal shows a warning above the diff and the discard confirmation explains that the file needs to be committed once. - Add sync/git/canonical-file.ts, which mirrors database.update (initModel) and the getWithDescendants ordering (created, then _id) - Split getInsomniaV5DataExport into a DB fetch and a pure serializeInsomniaV5Export - Return rawHead/rawStage from GitVCS.fileStatus, since head/stage are migrated and reordered for display - Export initModel from insomnia-data/node Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * refactor: Replay the Git Sync round-trip on a scratch database [INS-3689] The undiscardable-change check reimplemented parts of the import/export pipeline (initModel, getWithDescendants ordering) to avoid touching the app database. That copy would silently drift whenever the real pipeline changes. Run the real pipeline instead: write the imported docs to a scratch in-memory NeDB instance and export them with getInsomniaV5DataExport. - Keep NeDB collections, change buffer and listeners per instance in createNedbDatabase. They were module-level, so a second instance's init() would have replaced the app's collections. flushChangesImpl is now handed to the wrapper instead of being exported. - Add an optional db parameter to getInsomniaV5DataExport and drop the serializeInsomniaV5Export split and the initModel export Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix: Ignore import timestamps when detecting undiscardable changes [INS-3689] Import fills a missing meta.created/modified with the current time, so a hand-added entry without timestamps got a different value in the replay than in the working copy the watcher wrote earlier. The exact comparison then failed and the warning never showed, although the change still came back after every discard. Compare the replay with the working copy using hasSignificantChanges, the same rules the Unstaged changes list uses, so differences the list already ignores no longer hide the warning. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * chore: Reword the undiscardable change warning [INS-3689] Explain the cause in user terms, using the wording suggested in the ticket. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * chore: Shorten the undiscardable change warning [INS-3689] Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * refactor: Rename committedContent to baselineContent [INS-3689] The content a discard restores is the staged content when there is one, so it is not necessarily committed. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
4 lines
111 B
TypeScript
4 lines
111 B
TypeScript
export { createNedbDatabase } from './database/database-nedb';
|
|
|
|
export { servicesNodeImpl } from './services';
|