github iwe-org/iwe iwe-v0.6.1
v0.6.1

latest releases: iwec-v0.6.1, iwes-v0.6.1
5 hours ago

iwe

Fixed

  • 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.

Don't miss a new iwe release

NewReleases is sending notifications on new releases.