Repository navigation
Conversation
…ce split Extracted a generic JsonStore that owns one JSON file with an atomic write, a serialized update lock and a lazy in-memory cache, then split the persisted store into three files: config.json for user-authored preferences, state.json for the transient view state (files pane width, search filters, window placement, recent projects) and cache.json for the LFS lock cache. Introduced a preferences window with General, Appearance and Services tabs, driven by a draft that only commits on Apply. Mirrored React95 themes onto the Tailwind theme tokens so title bars and chrome repaint the moment a theme is picked, and hydrated the preferences before the first paint so the first frame already lands on the picked theme. Wired the auto-lock, MCP and updater services to a broadcast that reschedules or drops their state in place when their cadence or endpoint changes. Replaced the PNG window control icons with themable SVG glyphs so they follow the picked theme's title-bar text color.
…ded or removed Adding or removing a C++ file invalidates compile_commands.json, and until it is rewritten clangd has no entry for the new translation unit. That rewrite was a batch script run by hand per project, so a new source file meant dropping out of the editor before the language server could see it at all. Resolved the engine install in the app rather than leaning on a per-project script: a launcher install comes off the per-version registry key, a source build off the user's Builds key keyed by the GUID a .uproject carries, macOS off the shared install directory, and any of them can be overridden by hand for a layout we cannot discover. Read the editor target off the project's own *Editor.Target.cs instead of guessing it from the project name, then drove the engine's build tool directly, passing -OutputDir so the database lands in the project rather than in the engine install. Scoped the watchers to the project's Source tree and to every plugin's, at whatever depth the plugin sits, and pruned the generated trees the build tool churns through so its own output cannot retrigger the watch. Gated every event on a re-scan comparing the file set, so only a file coming or going spends an invocation while an edit to one already in the database spends nothing. Collapsed bursts through a settle timer so a branch switch rewriting hundreds of files ends in a single run, and coalesced a change landing mid-run onto one replay. Left it off by default, with the toggle, the settle delay and the engine override under Options > Services, a status chip carrying the running step and the last outcome, and two Repository items for the fast path and the full project-files regeneration. Kept the full one manual only so an open IDE never has its solution rewritten underneath it, and surfaced it as a hint on the chip whenever a build or plugin descriptor moves.
Covered the pure half of the compile database watcher, which decides whether a path counts toward the database and whether a re-scan moved the file set. Both carry the cases that are easy to get wrong: a plugin grouped a folder deeper than usual, a plugin descriptor sitting above its own source tree, and the generated sources the build tool writes under Intermediate, which look hand-written and must not count. These are the first tests in the repo, dropped into the tests/unit folder the vitest config already pointed at. Kept their helpers out of the test files themselves under tests/lib/utils, reachable through a @tests alias so nothing has to climb out with a relative import.
|
🎉 This PR is included in version 1.7.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
No description provided.