From 404e7827bcf7fda994de4f28e711a3eda3bac307 Mon Sep 17 00:00:00 2001 From: Colby Mchenry Date: Fri, 2 Oct 2026 04:09:56 +0000 Subject: [PATCH 1/5] fix(windows): hide the git calls that flash console windows (#2094) (#2280) * fix(windows): hide the git calls that flash console windows (#2094) The two git calls added for exclude-standard scope parity (#1728), `git config --get core.excludesFile` and `git ls-files -o -i --exclude-standard --directory`, ran without windowsHide. Inside the detached, console-less MCP daemon each one got a fresh visible console, so a window flashed several times on daemon start and again on every auto-sync. With Windows Terminal as the default terminal each flash is a full Windows Terminal window. `git config user.name` in the viewer's trails API had the same gap. Add windowsHide: true to all three, and replace the per-file regex guards with an AST guard over every child_process spawn in src/: options passed through a variable or a function parameter are traced back to the object literal that defines them, through every call site. Supersedes #2095 (same fix, rebased on current main). Closes #2094, closes #2096. (cherry picked from commit dd2db41f1b03f2b17a68c69cdd3c341d62a44908) * docs(changelog): credit the Windows console-window fix Co-Authored-By: Claude Opus 5.5 (cherry picked from commit cf93d497fd1b38fd9214945eeb55b6b0be9e2007) --------- Co-authored-by: Suharaz Co-authored-by: Claude Opus 5.5 --- CHANGELOG.md | 2 + __tests__/child-process-windows-hide.test.ts | 208 +++++++++++++++++++ src/extraction/index.ts | 3 +- src/ui-server/api/trails.ts | 1 + 4 files changed, 213 insertions(+), 1 deletion(-) create mode 100644 __tests__/child-process-windows-hide.test.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b54d23d7a..592eea7ab0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### Fixes +- On Windows, terminal windows no longer flash open and closed while CodeGraph runs in the background. Since 1.6.1, a background MCP server popped up a console window (a full Windows Terminal window when that is the default terminal) several times when it started and again every time it re-synced a changed file. All of CodeGraph's git calls now run hidden. Thanks @Suharaz, @23q3, @A-Van-Gestel and @HarryMuc. (#2094, #2096) - In Vapor apps, a route whose handler is a trailing closure, like `app.get("hello") { req in … }` or `app.webSocket("chat") { req, ws in … }`, now links to what the closure calls, the way an Express inline handler does. Before, the route linked to nothing, so callers, impact and flows stopped at it. - A COBOL file whose last line ends inside the sequence area (columns 1-6), such as a closing period indented only four spaces, no longer stalls indexing for over a minute and then ends up in the index with no symbols. - In Laravel apps, a route whose controller is named by string now links to its handler, without needing a `Controller` suffix and keeping the namespace it's written with: `'Common\Uploads@inline'`, and `Route::resource('companies', 'Common\Companies', [...])` with an options array. Two same-named controllers in different namespaces are told apart by that namespace. Before, akaunting linked 304 of its 313 routes to nothing. @@ -22,6 +23,7 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - In Vue, Svelte and Astro files, a component now owns its script, and what a `