Changelog

Every change,
documented.

GhostMap product changelog. Every user-visible fix and feature is logged here with the reasoning behind it.

Docs & distribution clarification June 20, 2026 Current
Site / docs / extension source sync
  • Version stamp – updated public copy from 0.0.1 to 0.5.0 across the README and install snippets.
  • Distribution truth – reframed the home page, roadmap, and install docs so local VSIX packaging is the current channel, GitHub Releases are planned post-tag, the VS Code Marketplace listing is planned and depends on publisher onboarding, and Open VSX is documented as the planned bridge for VSCodium and other Open VSX-compatible editors.
  • V1 vs V2 scope – the "how it works" page now distinguishes the V1 active-file Ghost Tree + per-document cache from the V2 workspace-wide indexing engine direction (Ghost Index v2 + Ghost Watcher), which is designed but not shipped.
  • Language expansion – the features page now separates the 19 currently supported languages from the planned ~20-language expansion workstream gated on Tree-sitter packaging, WASM provenance, query validity, and fixture coverage.
  • Enterprise framing – the roadmap, Privacy Policy, and Terms of Use now flag Jira / Slack, Ghost Threads, Ghost Graph, dashboards, AI explanations, and permissions / audit log as future Enterprise roadmap capabilities that are not shipped today and would require their own privacy notice and consent before any integration with server services.
Round 6 June 17, 2026 Pre-release
Fixes
  • C# constructors - K&R and Allman constructors now appear in the Ghost Tree. Added pattern with [A-Z] anchor to distinguish from method calls.
  • PHP method recognition - Day-1 regex bug: public function foo() was invisible in large PHP files because only static consumed its trailing space. All modifiers now handle whitespace uniformly.
  • C# var fields - Class-level var declarations now appear. Local variables inside method bodies are correctly suppressed.
  • Status badge in TreeView title - GhostMap now shows [loading], [cached], [stale-cache], and discard reasons directly in the panel header.
  • Restored setLoading() - A previous round removed what seemed like a redundant call; it wasn't. Stale-cached trees no longer appear as "complete" while a refresh runs.
  • Removed background fingerprint validator - The round-5 attempt used synchronous file IO on the Extension Host main thread, causing 2-10 s freezes under RAM pressure. Removed. Optimistic trust + lazy mismatch detection remains.
Round 5 June 17, 2026 Pre-release
Performance
  • LSP timeout reduced - 1500 ms → 800 ms. Halves the cold-LSP stall on first open.
  • Small-file fast path - Files under 500 lines with an active LSP skip Tree-sitter + regex entirely, saving up to 1.2 s of WASM load.
  • Cold-start fast path (Ghost Index) - Persisted snapshots now load as trusted on activate. First open of a known file: tree paints in <50 ms instead of 5-35 s.
  • Tiny file bypass - Files under 50 lines skip the 200 ms tab-spam backpressure window.
  • Lazy LSP warm-up - GhostMap pre-warms the active language server on activate, then staggered warm-ups for other visible editors after 2 s idle.
Fixes
  • Live scanner references - Parent class arrows were missing in 60 k-line C#/Java files after the scanner mutated item ranges and callers held stale clones. Scanner now exposes live references.
  • Trailing comment backtrack - Comments between two methods were absorbed into the previous block's range. Fixed for Python, Ruby, Julia, Elixir.
  • const / let arrow functions - const fetch = () => {} was invisible in JS/TS/TSX. Fixed with a dedicated pattern.
  • Multi-line string state - PHP heredocs, JS template literals, Java text blocks now tracked across lines. Braces inside strings no longer desync the frame stack.
  • Tab-switch race condition - A slow LSP call no longer pays the full 800 ms timeout after the user switches tabs. The wait polls every 50 ms and aborts immediately.
Round 4 June 17, 2026 Pre-release
Nesting correctness
  • Allman brace support - C#, Java, C++, C, Go: methods with the opening brace on a separate line now appear correctly nested.
  • Multi-line method signatures - TS, Java: methods with arguments spread across multiple lines are detected.
  • Python / Ruby / Julia / Elixir nesting - Indent-stack tracker added. Indent-based languages now produce nested trees, not flat lists.
  • Pending body FIFO queue - Two declarations queued before a { no longer overwrite each other.
  • Anonymous frame guard - const x = { run() {} } no longer produces a spurious run in the tree.
  • Native LSP hierarchy preservation - LSP-provided children are no longer thrown away during the flatten + rebuild round trip.
Testing infrastructure
  • Added mocha + chai + ts-node test harness with a hand-written VS Code stub.
  • 84-cell icon matrix, 6-fixture nesting matrix, 4-cell anchor matrix.
  • 139 tests passing at end of round 4.
v1-coalesce-publish June 2026 Pre-release
  • Publish coalescer - 87% fewer TreeView event fires during a 60 k-line progressive scan.
  • Progressive scanner - Regex-based scanner for large files, batch-yielding via setImmediate to keep the editor responsive. C++ 60 k scan: from ~19.5 s to ~33 ms.
  • Resumable scan - Mid-scan tab switches no longer discard minutes of partial work.
  • SHA-256 cache fast path - Tab switch to a warm-cached file skips fingerprinting entirely.
  • Local state persistence - .ghostmap/ snapshot file introduced.
Pre-V1 baseline June 13, 2026
  • Initial GhostMap extension: TreeView wired, @ghost annotation parser, foreground refresh scheduling.
  • Basic anchor types: contextual, named, range.
  • Initial license. First commit.

See the full iteration log.

Every round is documented in detail in the docs - rationale, files touched, and tests that lock the behaviour in.

Read the changelog →