# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.1.7](https://github.com/iwe-org/iwe/compare/iwes-v0.1.6...iwes-v0.1.7) - 2026-05-20

### Added

- `completion.trigger_characters` config option — list of characters advertised to the editor as completion triggers. Defaults to `["["]`.

### Changed

- `textDocument/completion` returns link completions as a `text_edit` whose range covers any leading `[` or `[[` the user typed, so the editor replaces those brackets instead of duplicating them. `[` produces a markdown link, `[[` produces a wiki link regardless of `completion.link_format`; when no bracket precedes the cursor, `completion.link_format` still selects the shape. The range also swallows a trailing `]` (or `]]`) directly after the cursor, so editors with bracket auto-pairing don't leave a stray closing bracket behind.
- `completion.min_prefix_length` default lowered from `3` to `0`, so completions appear as soon as the editor requests them (matching the new `[` trigger). Users who relied on the old behavior should set `min_prefix_length = 3` explicitly.

### Removed

- The hardcoded `+` completion trigger character. Editors that want it can opt in by setting `completion.trigger_characters = ["+"]` (or include it alongside other triggers).

## [0.1.6](https://github.com/iwe-org/iwe/compare/iwes-v0.1.5...iwes-v0.1.6) - 2026-05-17

### Fixed

- `custom.link` code action and `textDocument/completion` no longer panic on lines containing multi-byte UTF-8 characters; LSP `Position.character` values are interpreted as UTF-16 code units per the LSP spec and converted to byte offsets before slicing the line

## [0.1.5](https://github.com/iwe-org/iwe/compare/iwes-v0.1.4...iwes-v0.1.5) - 2026-05-16

### Fixed

- LSP-driven document writes preserve links to non-markdown files (e.g. `.pdf`, `.html`) instead of appending the configured `refs_extension`

## [0.1.4](https://github.com/iwe-org/iwe/compare/iwes-v0.1.3...iwes-v0.1.4) - 2026-05-15

Workspace version bump — no user-visible changes in this crate.

## [0.1.3](https://github.com/iwe-org/iwe/compare/iwes-v0.1.2...iwes-v0.1.3) - 2026-05-05

### Fixed

- `textDocument/rename` no longer panics when invoked on a link whose target key is missing from the graph (broken link); the request now returns no edit.

## [0.1.2](https://github.com/iwe-org/iwe/compare/iwes-v0.1.1...iwes-v0.1.2) - 2026-05-04

### Changed

- Filter expressions in routed query operations accept the natural form `{type: tracker, $or: [...]}` — bare field keys may be mixed with `$and`/`$or`/`$nor`/`$key`/graph operators at document-matching positions, combining via implicit AND (previously rejected).

### Removed

- Top-level `$not` in routed query filters. `$not` is now field-level only (matching MongoDB); use `$nor: [filter]` for document-level negation. Top-level `$not` returns a parse-time error pointing to `$nor`.

## [0.1.1](https://github.com/iwe-org/iwe/compare/iwes-v0.1.0...iwes-v0.1.1) - 2026-05-03

Workspace version bump — no user-visible changes in this crate.

## [0.1.0](https://github.com/iwe-org/iwe/compare/iwes-v0.0.70...iwes-v0.1.0) - 2026-05-01

### Added

- Query routing on the LSP server — clients can run filter, find, count, update, and delete operations over the workspace using the new query language

## [0.0.70](https://github.com/iwe-org/iwe/compare/iwes-v0.0.69...iwes-v0.0.70) - 2026-04-25

### Added

- Add time format in addition to date format ([#268](https://github.com/iwe-org/iwe/pull/268))

### Other

- Update readme

## [0.0.69](https://github.com/iwe-org/iwe/compare/iwes-v0.0.68...iwes-v0.0.69) - 2026-04-23

### Added

- Custom Markdown formatting ([#266](https://github.com/iwe-org/iwe/pull/266))

## [0.0.68](https://github.com/iwe-org/iwe/compare/iwes-v0.0.67...iwes-v0.0.68) - 2026-04-22

### Added

- Add min prefix length for completions ([#262](https://github.com/iwe-org/iwe/pull/262))

## [0.0.66](https://github.com/iwe-org/iwe/compare/iwes-v0.0.65...iwes-v0.0.66) - 2026-04-04

### Added

- List broken links in the stats command output  ([#252](https://github.com/iwe-org/iwe/pull/252))
- Enable code actions for inline links ([#248](https://github.com/iwe-org/iwe/pull/248))
- Go to definition for external URL's ([#247](https://github.com/iwe-org/iwe/pull/247))

### Other

- CI test stability fix

## [0.0.65](https://github.com/iwe-org/iwe/compare/iwes-v0.0.64...iwes-v0.0.65) - 2026-03-28

### Added

- Local dates and time components in the templates ([#245](https://github.com/iwe-org/iwe/pull/245))

## [0.0.64](https://github.com/iwe-org/iwe/compare/iwes-v0.0.63...iwes-v0.0.64) - 2026-03-25

### Added

- Add LSP folding ranges ([#235](https://github.com/iwe-org/iwe/pull/235))

## [0.0.63](https://github.com/iwe-org/iwe/compare/iwes-v0.0.62...iwes-v0.0.63) - 2026-03-20

### Added

- Search by document title, parent document titles and the document key instead of document path ([#231](https://github.com/iwe-org/iwe/pull/231))

### Other

- Removing unwarp's for stability and code style improvements ([#229](https://github.com/iwe-org/iwe/pull/229))

## [0.0.62](https://github.com/iwe-org/iwe/compare/iwes-v0.0.61...iwes-v0.0.62) - 2026-03-19

### Added

- CLI commands for graph transformations ([#227](https://github.com/iwe-org/iwe/pull/227))

### Other

- release v0.0.61 ([#224](https://github.com/iwe-org/iwe/pull/224))
- CI build fix

## [0.0.61](https://github.com/iwe-org/iwe/compare/iwes-v0.0.60...iwes-v0.0.61) - 2026-03-16

### Other

- CI build fix

### Changed

- **BREAKING**: Replace LLM API integration with CLI-based transformations

  Transform actions now execute external CLI commands instead of making direct API calls to LLM providers. This change removes the burden of maintaining API client code and eliminates direct external API calls from IWE. Users are likely to already have CLI AI tools pre-configured with API keys and preferences, making integration seamless. Any CLI-based AI tool can be used: `claude`, `aichat`, `llm`, `sgpt`, or custom scripts.

  - Renamed `[models]` config section to `[commands]`
  - Transform actions now use `command` field instead of `model`
  - Transform actions now use `input_template` field instead of `prompt_template`
  - Removed `context` field from transform actions
  - Commands execute via `sh -c` with input piped to stdin
  - Configuration version bumped to 3 (auto-migration from v2)

### Removed

- Removed `reqwest` dependency (no longer needed for HTTP API calls)
- Removed LLM API client code
- Removed `prompt_key_prefix` configuration option

## [0.0.60](https://github.com/iwe-org/iwe/compare/iwes-v0.0.59...iwes-v0.0.60) - 2026-01-14

### Added

- Preview linked note with LSP hover ([#207](https://github.com/iwe-org/iwe/pull/207))

## [0.0.59](https://github.com/iwe-org/iwe/compare/iwes-v0.0.58...iwes-v0.0.59) - 2026-01-10

### Other

- update Cargo.lock dependencies

## [0.0.57](https://github.com/iwe-org/iwe/compare/iwes-v0.0.56...iwes-v0.0.57) - 2025-12-09

### Added

- Add wiki style links completion ([#199](https://github.com/iwe-org/iwe/pull/199))

### Other

- Move functionality search from library to server ([#188](https://github.com/iwe-org/iwe/pull/188))

## [0.0.56](https://github.com/iwe-org/iwe/compare/iwes-v0.0.55...iwes-v0.0.56) - 2025-11-11

### Fixed

- Backlinks to the files with unicode chars in the file name ([#185](https://github.com/iwe-org/iwe/pull/185))
- Rename operation should keep the title of the link ([#184](https://github.com/iwe-org/iwe/pull/184))

### Other

- Lint fixes ([#182](https://github.com/iwe-org/iwe/pull/182))

## [0.0.55](https://github.com/iwe-org/iwe/compare/iwes-v0.0.54...iwes-v0.0.55) - 2025-10-28

### Fixed

- Use configured reference extension for links auto complete ([#176](https://github.com/iwe-org/iwe/pull/176))

## [0.0.54](https://github.com/iwe-org/iwe/compare/iwes-v0.0.53...iwes-v0.0.54) - 2025-10-17

### Added

- Remove files from the index on delete ([#170](https://github.com/iwe-org/iwe/pull/170))

## [0.0.53](https://github.com/iwe-org/iwe/compare/iwes-v0.0.52...iwes-v0.0.53) - 2025-10-16

### Other

- update Cargo.lock dependencies

## [0.0.52](https://github.com/iwe-org/iwe/compare/iwes-v0.0.51...iwes-v0.0.52) - 2025-10-14

### Other

- update Cargo.lock dependencies

## [0.0.50](https://github.com/iwe-org/iwe/compare/iwes-v0.0.49...iwes-v0.0.50) - 2025-10-13

### Added

- Create link from selected text ([#164](https://github.com/iwe-org/iwe/pull/164))

## [0.0.49](https://github.com/iwe-org/iwe/compare/iwes-v0.0.48...iwes-v0.0.49) - 2025-10-13

### Added

- Link the word under cursor ([#160](https://github.com/iwe-org/iwe/pull/160))

## [0.0.47](https://github.com/iwe-org/iwe/compare/iwes-v0.0.46...iwes-v0.0.47) - 2025-09-23

### Added

- Add title slug to the extracted file name template ([#154](https://github.com/iwe-org/iwe/pull/154))

## [0.0.46](https://github.com/iwe-org/iwe/compare/iwes-v0.0.45...iwes-v0.0.46) - 2025-09-20

### Added

- Extract all config support ([#151](https://github.com/iwe-org/iwe/pull/151))
- Extract code action config ([#149](https://github.com/iwe-org/iwe/pull/149))

### Other

- Update dependencies ([#148](https://github.com/iwe-org/iwe/pull/148))

## [0.0.45](https://github.com/iwe-org/iwe/compare/iwes-v0.0.44...iwes-v0.0.45) - 2025-09-13

### Added

- Add Inline code action config with optional removal of the inlined file and references to it ([#145](https://github.com/iwe-org/iwe/pull/145))

## [0.0.44](https://github.com/iwe-org/iwe/compare/iwes-v0.0.43...iwes-v0.0.44) - 2025-09-07

### Added

- Honor .gitignore files ([#141](https://github.com/iwe-org/iwe/pull/141))
- Delete note updating all references ([#140](https://github.com/iwe-org/iwe/pull/140))
- Add sort code action for lists sorting ([#139](https://github.com/iwe-org/iwe/pull/139))

## [0.0.43](https://github.com/iwe-org/iwe/compare/iwes-v0.0.42...iwes-v0.0.43) - 2025-09-05

### Added

- Add --verbose flag for CLI and more debug logs ([#137](https://github.com/iwe-org/iwe/pull/137))

## [0.0.42](https://github.com/iwe-org/iwe/compare/iwes-v0.0.41...iwes-v0.0.42) - 2025-09-04

### Fixed

- Inlay hints request for non existent file crashes the server ([#135](https://github.com/iwe-org/iwe/pull/135))

## [0.0.41](https://github.com/iwe-org/iwe/compare/iwes-v0.0.40...iwes-v0.0.41) - 2025-09-01

### Added

- Backlinks for the block-reference under cursor ([#130](https://github.com/iwe-org/iwe/pull/130))

### Fixed

- Do not remove extensions from local links ([#132](https://github.com/iwe-org/iwe/pull/132))

## [0.0.40](https://github.com/iwe-org/iwe/compare/iwes-v0.0.39...iwes-v0.0.40) - 2025-08-31

### Added

- Customizable "Attach" code action for documents linking ([#128](https://github.com/iwe-org/iwe/pull/128))

## [0.0.39](https://github.com/iwe-org/iwe/compare/iwes-v0.0.38...iwes-v0.0.39) - 2025-08-28

### Fixed

- Code action should not remove YAML metadata ([#127](https://github.com/iwe-org/iwe/pull/127))

## [0.0.38](https://github.com/iwe-org/iwe/compare/iwes-v0.0.37...iwes-v0.0.38) - 2025-08-28

### Fixed

- Inline links extension formatting bug fix ([#123](https://github.com/iwe-org/iwe/pull/123))

## [0.0.37](https://github.com/iwe-org/iwe/compare/iwes-v0.0.36...iwes-v0.0.37) - 2025-08-27

### Added

- Include/exclude headers structure in DOT exports ([#120](https://github.com/iwe-org/iwe/pull/120))

### Fixed

- Ignore non alphanumeric chars in search ([#119](https://github.com/iwe-org/iwe/pull/119))

## [0.0.36](https://github.com/iwe-org/iwe/compare/iwes-v0.0.35...iwes-v0.0.36) - 2025-08-24

### Added

- Backlinks inlay hints ([#117](https://github.com/iwe-org/iwe/pull/117))

## [0.0.33](https://github.com/iwe-org/iwe/compare/iwes-v0.0.32...iwes-v0.0.33) - 2025-06-07

### Fixed

- Fix panic in case of quote in list item ([#105](https://github.com/iwe-org/iwe/pull/105))

## [0.0.31](https://github.com/iwe-org/iwe/compare/iwes-v0.0.30...iwes-v0.0.31) - 2025-04-06

### Added

- Triggering LLM queries using LSP completions ([#97](https://github.com/iwe-org/iwe/pull/97))

## [0.0.29](https://github.com/iwe-org/iwe/compare/iwes-v0.0.28...iwes-v0.0.29) - 2025-03-29

### Fixed

- List item with dual dash "- -" causing panic ([#92](https://github.com/iwe-org/iwe/pull/92))

## [0.0.28](https://github.com/iwe-org/iwe/compare/iwes-v0.0.27...iwes-v0.0.28) - 2025-03-30

### Added

- Custom LLM code actions support for context aware updates ([#90](https://github.com/iwe-org/iwe/pull/90))

## [0.0.27](https://github.com/iwe-org/iwe/compare/iwes-v0.0.26...iwes-v0.0.27) - 2025-03-08

### Added

- Tables support ([#77](https://github.com/iwe-org/iwe/pull/77))

## [0.0.26](https://github.com/iwe-org/iwe/compare/iwes-v0.0.25...iwes-v0.0.26) - 2025-02-25

### Fixed

- Use relative paths in code actions ([#73](https://github.com/iwe-org/iwe/pull/73))

## [0.0.25](https://github.com/iwe-org/iwe/compare/iwes-v0.0.24...iwes-v0.0.25) - 2025-02-24

### Added

- Sub-directories support ([#71](https://github.com/iwe-org/iwe/pull/71))

## [0.0.22](https://github.com/iwe-org/iwe/compare/iwes-v0.0.21...iwes-v0.0.22) - 2025-02-17

### Added

- Better search results ([#61](https://github.com/iwe-org/iwe/pull/61))
- Helix specific lsp client handling

## [0.0.21](https://github.com/iwe-org/iwe/compare/iwes-v0.0.20...iwes-v0.0.21) - 2025-02-17

### Added

- better search results (#61)

## [0.0.20](https://github.com/iwe-org/iwe/compare/iwes-v0.0.19...iwes-v0.0.20) - 2025-02-17

### Added

- LSP search with fuzzy matching and page-rank (#56)

## [0.0.19](https://github.com/iwe-org/iwe/compare/iwes-v0.0.18...iwes-v0.0.19) - 2025-02-16

### Added

- wiki links support (#52)