Search that finds what you mean, a code index that sees far more of your code, and agents that can only touch the note you named.
Improved
- Search finds what you mean. Look up a file name like ProcessRunner.swift and you get the notes that mention it. Nonsense queries come back empty instead of padded with loosely related notes, AND / OR / NOT are taken literally, and every relevance score is a simple 0–1.
- Code search sees much more of your code. Declarations carrying attributes such as @State, @Test or private(set) were missing from the code index — thousands of symbols in a typical Swift project. They're indexed now, partial names like SplitByLane find budgetSplitByLane, and results rank more sensibly. Your code index rebuilds once after updating, and reindexing is far faster.
- Safer note editing by agents. An agent can only edit, move or retire a note it names exactly — a partial title like "Overhaul" no longer lands in "Lexical Ranker Overhaul", and a name that matches several notes is refused rather than guessed.
- Links stay pointed where you put them. Moving or renaming a note only updates the links that actually pointed at it, automatic cleanup no longer re-points a link to a merely similar title, links to a title several notes share are flagged in Memory Health instead of silently following one of them, and accented or non-English titles resolve correctly.
Fixed
- Searching tasks could crash the app when a task's text contained "İ".
- The Memories, Wiki and Design lists could show your previous query's results, and "No matches" could flash while a search was still running. Search errors are now shown instead of a misleading "No matches".
- Searches containing punctuation, like tasks, or (urgent), could fail with an error.
- An unregistered repository was quietly treated as the "memophant" project and its notes filed under the wrong name. Agent tools now refuse to work in a repo until you add it to Memophant.
- A misspelled project name or a wrongly typed argument from an agent is refused with a clear message instead of being ignored or applied to the wrong project.
- After a mid-session license unlock, agent tools stopped responding until the agent restarted.
- Agent file writes refuse odd paths (ending in "/" or containing ".."), and vendor names can no longer reach outside the vendors folder.
- Cleaner anonymous analytics: every event is counted once, development builds send nothing, and turning analytics off always wins. Updated to swift-stats 0.3.0.