Skip to content

Memtrace v1.2.4

Choose a tag to compare

@Alex793x Alex793x released this 15 Sep 10:47
· 33 commits to main since this release

Memtrace v1.2.4

Saving a file stops re-indexing the whole file

Fixed

  • Saving a file no longer re-indexes it from scratch. Editors that save atomically — VS Code, IntelliJ, and vim in its default configuration — write a temporary file and rename it over the original, which the file watcher reports as a deletion followed by a creation. Memtrace treated that as a real deletion, discarded everything it knew about the file, and then re-created every symbol and relationship in it. On a 6,000-key YAML, inserting one line re-created 6,063 symbols and tombstoned 12,119 relationships in about three seconds; it now updates 1 symbol and 2 relationships in about 0.7 seconds, and writes roughly a tenth as much to the store. This affected every file type, not only configuration files.
  • A configuration key's identity is now its dotted path rather than its line number, so inserting or removing a line above other keys no longer changes their identity. Config files were the most affected because they emit roughly one symbol per line, where source code emits about one per twenty.
  • Items in a YAML list now carry their position in the key path, so the steps of a CI job read as jobs.build.steps[0].uses and jobs.build.steps[1].run. Previously every step in a list produced the same path and the same display name, which made them indistinguishable in search and the graph view.
  • Organization invitations can be accepted when the invited address and the account differ only by a plus tag — an invite sent to name@example.com now works for someone who signs in as name+tag@example.com, because both spellings reach the same mailbox.
  • The organization invite page now says why an invitation cannot be used instead of giving one message for every cause: whether it was sent to a different address, has expired, or was cancelled. Its sign-in button signs you out first, so it no longer returns you to the same error while you are still signed in as the wrong account, and opening an invite link for an organization you already joined takes you into that workspace rather than reporting a failure.
  • Cortex no longer reports a connection problem when decision memory is merely busy. A request that had to wait — because the service was still starting, or because it was working through a slow first classification — was reported as though the service were missing. Busy and absent are now told apart, and only a genuinely absent service is described as one.
  • Opening Cortex starts decision memory on demand when it is entitled and not already serving, instead of showing a connection error until something else happened to start it first.
  • Cortex now shows only the repositories this workspace is watching or has indexed. Governance previously listed repositories belonging to other workspaces on the same machine, which made it look as though Memtrace were tracking work you had never opened here.
  • Stopping Memtrace now keeps decision memory stopped. The on-demand start honours the saved opt-out and entitlement, so a workspace you have closed — or a session you have opted out of — no longer brings the service back.
  • Governance documents such as ADRs kept in a watched repository are classified through decision memory rather than being skipped, so they appear in Cortex for the repositories you are actually working in.
  • On Windows, a workspace is recognised as the same workspace however its path is spelled, so Cortex no longer treats one project as two. Records left behind by a session that has since exited are cleared instead of keeping a workspace listed as active.
  • On Windows, governance classification no longer fails with “The pipe is being closed” as soon as a repository has more than one governance document. A request larger than the local pipe's buffer was refused whole and the connection never recovered, so two ADRs — or one long one — could not be classified while decision memory was running and idle; one short ADR fitted and worked, which is why the fault looked like a connection problem rather than a size one. Requests are now sent in pieces the pipe always accepts.

New

  • New features reach the nightly channel first: npm install -g memtrace@nightly. Nightly is not always stable. The default install receives stable releases, and memtrace install keeps the current channel.

Changed

  • Configuration keys are identified by their key path rather than their position in the file from this release on. Existing indexes keep working and need no action: the entries for a file are brought up to date the first time that file is re-indexed or edited. If you would rather clear a store in one step, run memtrace index --clear on that repository.

Improved

  • When Cortex genuinely cannot start, the message now says what to do about it — check memtrace status, and run memtrace cortex debug for a redacted report — instead of repeating an internal error string.

Install

npm install -g memtrace