You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
retrieve --backlinks can now be turned off: --backlinks false disables incoming references, while a bare --backlinks (and the default) still includes them. Previously the flag was stuck on and --backlinks false was rejected outright.
stats -k <key> accepts a key written with a .md/.dj extension (stats -k note.md) instead of reporting the document as not found.
find --format keys combined with --project now prints the matched keys instead of nothing.
attach reports an error and exits instead of crashing when an action's key_template or document_template is malformed; attach --list and --dry-run are affected too.
schema and find --filter '{$type: datetime}' no longer crash when a document holds a datetime value with multibyte characters.
iwes
Fixed
Renaming a wiki link ([[target]] or [[target|label]]) now selects the target for editing instead of an empty spot at the closing brackets.
Positions in a document that starts with an empty frontmatter (--- / ---) are no longer shifted up by two lines, so goto-definition, hover, rename, and code actions land on the right line.
A failed rename (for example when the target file name is already taken) is now returned as a proper LSP error response instead of an empty success, so the editor surfaces the message to the user instead of silently doing nothing.
Link completion no longer leaves a stray [ behind when the cursor sits after trailing spaces; the completion is inserted at the cursor instead of overwriting part of an earlier word.
Find references invoked on a link now reports references to the linked document (rather than the current document) when the request asks to include the declaration.
An unknown LSP request now returns a MethodNotFound error instead of panicking the request handler and leaving the client waiting for a response that never arrives.
Formatting a document that is not part of the library (a file outside the library path, or a brand-new unsaved file) no longer crashes the server; it returns no edits.
A transform action environment value that contains non-ASCII characters no longer crashes code action resolution.
A long editing session on a document that contains a table no longer grows the server's memory without bound; the table's lines are released each time the document is re-parsed.
Removed
The advertised workspace/executeCommand capability, which offered an unimplemented generate command that had no handler.
iwec
Fixed
iwe_normalize now actually reformats documents on disk: it compares each document's normalized form against the file's current contents and rewrites the ones that differ, reporting an accurate normalized count instead of always returning 0.
iwe_create rejects a title with no alphanumeric characters (e.g. "!!!") instead of writing an empty-named file.
iwe_attach and the iwe://config resource return an error instead of crashing the server when an attach action's template is malformed.
The file watcher maps a file named note.md.md to the key note.md instead of note, matching how the graph loads documents from disk.
Repeatedly saving a watched document that contains a table no longer leaks memory as the server re-parses it.
liwe
Fixed
DocumentInline::key_range now returns the target range for wiki links ([[target]] and [[target|label]]); it previously assumed [text](url) syntax and returned an empty range at the wrong offset.
The markdown reader now offsets line positions by the stripped empty frontmatter (--- / ---), so block and inline ranges point at the original document lines instead of being two lines too low.
Sorting a field that mixes value types (e.g. some documents with priority: 3 and others with priority: high) now produces a stable, deterministic order: values are grouped by type before being compared, so cross-type pairs no longer collapse to "equal" and scramble the result.
Numeric filters compare integers exactly instead of routing everything through 64-bit floats, so large whole numbers past 2^53 (like id: 9007199254740993) are no longer treated as equal to their neighbours.
A not-a-number filter target (.nan) no longer compares as equal to every number, so range operators like $gte: .nan match nothing instead of matching everything.
Datetime detection in query filters no longer crashes on a value with multibyte characters in the timezone tail (for example 2026-04-26T10:30:00+0é9).
Code blocks whose content contains a run of the fence token are now written with a longer fence, so the block no longer terminates early and leaks its content into the surrounding text.
A paragraph that starts with an escaped \* keeps its backslash when written, so it is not re-parsed as a bullet list on the next pass.
A document key strips only one file extension, so a file named note.md.md maps to the key note.md instead of collapsing onto note and being duplicated on write.
Deleting a table node now releases its header and row lines back to the arena; repeatedly re-parsing a document that contains a table no longer leaks those line slots and grows memory without bound.