github iwe-org/iwe iwe-v0.23.0
v0.23.0

latest releases: iwec-v0.23.0, iwes-v0.23.0
3 hours ago

The memory injected at session start is now yours to shape: every slice in MEMORY.md is a plain query — a filter, a sort, a heading, its own limit and token budget — instead of a fixed set of built-in sources filtered through one global knowledge filter. The query language also has a published JSON Schema now (iwe docs query-schema), so editors, agents and other schemas can point at it and validate queries before they run.

iwe

Added

  • iwe docs query-schema prints a JSON Schema (draft 2020-12) for the query language, also published at https://iwe.md/schemas/query/draft/2026-08/schema so an editor, an agent or another schema can point at it; it is checked against the parser on every example in iwe docs query

Changed

  • injection slices are plain queries: each is a filter and/or a sort with an optional heading and limit, and session start lists what they select from the store minus MEMORY and queries (previously every slice was ANDed with knowledge_filter, and recent: true / changed: true were separate sources)
  • iwe internal claude session brief prints what session start lists (previously the knowledge filter and a recent section ordered by recency_field)
  • iwe internal claude enable no longer stamps created on MEMORY.md, and writes an explicit injection slice into the frontmatter for the user to edit
  • MEMORY.md distill knobs are one nested group: distill.max_chunk_size (default 25000, was chunk_chars at 10000), distill.max_proposals (was max_proposals_per_read) and distill.remind_after_days (was remind_every_days; -1 now disables the reminder and 0 reminds every session, previously 0 disabled it); their IWE_DISTILL_* environment twins follow the path, and iwe internal claude policy names a legacy key it finds with its new path
  • Each injection slice may set its own max_tokens; a slice with neither limit nor max_tokens lists everything it matches

Removed

  • knowledge_filter and recency_field knobs and their IWE_* environment twins, the recent and changed slice sources, and the session complete warning about a document outside the knowledge filter
  • Session start no longer runs git status; nothing in memory assumes the store is in a git repository
  • injection_max_tokens knob and IWE_INJECTION_MAX_TOKENS — the budget is per slice
Library crates (liwe, diwe)

liwe

Added

  • query::QUERY_SCHEMA_DRAFTS, query::CURRENT_QUERY_SCHEMA_DRAFT, query::query_schema, query::current_query_schema and query::query_schema_uri — the query language's JSON Schema, one entry per draft, addressed as https://iwe.md/schemas/query/draft/<draft>/schema
  • schema::iwe_compile_options returns the CompileOptions a document schema is compiled with, and schema::CompileOptions is re-exported

Changed

  • schema::compile_schema resolves a $ref to any published IWE schema address from the copy built into the binary, so a document schema can reuse the query language's definitions; an unknown external $ref now reports that nothing is registered under that address (was "external references are not allowed")

Don't miss a new iwe release

NewReleases is sending notifications on new releases.