Skip to content

Memtrace v1.2.10

Choose a tag to compare

@Alex793x Alex793x released this 22 Oct 22:49
· 3 commits to main since this release

Memtrace v1.2.10

Code mapping, graph history and indexing fixes

Fixed

  • Project-only setup survives directory aliases and Windows junctions, including records written by earlier versions. Updating from an aliased checkout preserves the chosen project scope.
  • Read COBOL, Zig and Vue/Nuxt source, including module imports and framework conventions.
  • Resolve calls through imported names, callback values, fields, generic receiver types and higher-order wrappers.
  • Preserve declaration documentation, attributes, visibility, scope and variable mutability as searchable metadata.
  • Build control-flow and data-dependency graphs, and use them to explain affected code.
  • Persist taint findings and explain their source-to-destination paths.
  • Run typed, read-only structural graph queries with bounded results.
  • Preview and apply coordinated renames across files, including Vue component imports.
  • Connect API routes, response shapes, outgoing requests and consumers for impact analysis.
  • Discover MCP and RPC tool definitions and trace the processes that call them.
  • Link repositories through service and protocol contracts while preserving repository boundaries.
  • Show initialization-related import cycles, communities and architecture relationships.
  • Index declaration prose and complete source windows for lexical and semantic retrieval, including documentation-only updates.
  • Keep full and incremental indexing consistent across mode changes, durable writes and interrupted updates.
  • Deliver source-grounded context, caller relationships and impact reports with file locations and call-site lines.
  • Embedding counts now match the saved symbols when identities repeat, while preserving the last saved declaration data.
  • API calls with query strings remain available after indexing and cleanup.
  • Keep Kubernetes request links when processing YAML manifests.
  • Large enums reuse source-line hashes while keeping existing symbol fingerprints.
  • Close streamed queries cleanly so indexes can shut down and reopen.
  • Search and context tools return compact results, with additional detail available when requested.
  • Optional code-search hints point agents to owning classes, callers and related files.
  • The dashboard loads all recorded episode summaries for the selected scope. Timeline All keeps the range as older commits arrive; switching repositories clears the old selection. Workspace timelines exclude unrelated repositories retained in the store. History labels distinguish Recorded History from History Pending and History Unavailable; recorded history does not certify complete Git coverage. An explicit older or all-history replay revisits its requested window after a narrower replay. Thanks to qilipu and Maja for the reports.
  • Timeline loading and failed requests no longer look like empty history. Failures offer retry; previously loaded history stays visible with an out-of-date warning when a refresh fails. Thanks to qilipu and Maja for the reports.
  • Watchers capture edits saved before registration, including untracked files and deletions. Active PR worktrees keep uncommitted changes in a private overlay, with file hashes and checkout versions available for inspection. Thanks to Maja and @magalz for the reports.
  • Local indexing and replay reconnect to the store's current daemon endpoint instead of reusing a stale port. Failed index jobs retain runtime configuration to help diagnose another occurrence. Thanks to Maja for the report.
  • Branch quality checks and Insights follow the selected branch and its recorded ancestry, dropping superseded symbol copies. Dead-code results can page beyond 200 candidates, and exact duplicates require equal complete source. Graph size checks use the selected branch's recorded count. Thanks to @magalz for the report.
  • Kotlin extension calls and Android manifest entry points contribute to reachability; anonymous callbacks are no longer standalone dead-code findings. Indexing honors vendoring rules and explicit include overrides, and the UI distinguishes static reachability from test coverage. Thanks to @magalz for the report.
  • Indexing summarizes incomplete Go interface information in one bounded diagnostic. Replay skips unchanged-source work while keeping commit episodes; --first-parent offers an explicit shorter history traversal. Thanks to @magalz for the report.
  • Cleanup and index admission have bounded read or publication waits, and a busy index request no longer returns another checkout's job. Changed-file paths and ambiguous impact/preflight selections preserve the chosen repository and declaration. Local graph calls can opt into longer bounded admission waits with MEMTRACE_GRAPH_WAIT_SECONDS. Thanks to @magalz for the report.
  • Import-cycle scans spend their budget on files and imports. Reaching the limit returns the cycles found with an incomplete verdict. Thanks to @magalz for the report.
  • Governance scans find individual ADRs when the requested root is the ADR directory, and explain how to verify decision recall after ingestion. Thanks to @magalz for the report.
  • Working-tree snapshots distinguish canonical checkouts from linked overlays. Watches validate the requested branch against HEAD and identify manual, restored and startup registrations. Startup auto-watching has a separate opt-out. Thanks to @magalz for the report.
  • Attached MCP clients defer Fleet state until a request needs it and leave adaptive learning off unless enabled. Restored adaptive state keeps its slot limit. Thanks to @Badmrpotatohead for the report.
  • Stdio MCP sessions watch their original client during startup and serving. Cleanup joins one shared flush even when a waiter is canceled, and preserves ownership when stopping helpers. Thanks to @Badmrpotatohead for the report.
  • Windows MCP cleanup uses held process handles and bounded probes. stop --all-mcp reports confirmed exits separately from refused, unknown and surviving processes. Thanks to @Badmrpotatohead for the report.
  • MemDB validates property-snapshot counts before reserving memory and stops on allocation failure. Record checkpoints stream their encoded output and close staged files before atomic replacement. Windows snapshot readers and replacements share a lock to avoid file-sharing failures. UUID repair uses scratch files on the store volume. Startup logs identify recovery phases and elapsed time. Thanks to @Badmrpotatohead for the report.
  • Retained historical search readers have a cache limit. Embedding workers keep their capacity reservation until loading or inference actually ends, so timed-out workers cannot start an unbounded chain of replacements. Thanks to @Badmrpotatohead for the report.
  • Embedding banners label requested providers without claiming verified model execution. Verification counts completed operators from the actual model profile; CPU-only placement does not verify a requested CUDA provider. Thanks to @Badmrpotatohead for the report.
  • Graph selection starts Code and file-symbol reads independently and scopes known nodes to their repository. File lists use bounded snapshot projection instead of rebuilding the full graph, and late responses cannot overwrite a newer selection. Thanks to the user who reported the slow graph selection.
  • Graph Code, Info and History preserve the selected branch and time. History reads include closed versions, and detail queries refresh after relevant graph changes. Failed file reads offer retry instead of claiming the file has no symbols. Thanks to the user who reported the slow graph selection.
  • The All repositories graph keeps existing API and library-import bridges when merging repository caches. Cross-repository relations retain their original kinds and render with red emphasis, including on large graphs. Thanks to the user who reported the missing links.
  • Service topology follows each repository's active branch and recorded ancestry, including removals and explicit branch queries. Switching checkouts or workspace members clears results from the previous scope. Thanks to the user who reported the graph and topology mismatch.
  • Graph redraws keep one GPU draw in flight, retain the latest pending camera or selection update, and skip nodes and edges outside the visible viewport. Large graphs compute several layout steps between draws without skipping simulation steps or waiting twice for a completed frame. Layout updates avoid unused memory transfers and unnecessary buffer allocations, and read packed tree cells through precomputed links instead of building a traversal stack for every node. Enlarged selected nodes and edges crossing the viewport stay visible. Closing or replacing a canvas releases its GPU resources, including when setup is still running. Thanks to the user who reported slow graph interactions.
  • Graph picking uses the positions and camera from a completed draw. Background layout readbacks cannot change the hit map independently of that draw. Thanks to the user who reported slow graph interactions.
  • Linux daemon startup handles an MCP owner that is still releasing its store lock without mistaking it for a replacement owner. Found while testing the MCP lifecycle reported by @Badmrpotatohead.
  • Thanks to Maja, @magalz, @Badmrpotatohead and qilipu for the reports behind these fixes.

Install

npm install -g memtrace