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-schemaprints a JSON Schema (draft 2020-12) for the query language, also published athttps://iwe.md/schemas/query/draft/2026-08/schemaso an editor, an agent or another schema can point at it; it is checked against the parser on every example iniwe docs query
Changed
injectionslices are plain queries: each is afilterand/or asortwith an optionalheadingandlimit, and session start lists what they select from the store minusMEMORYandqueries(previously every slice was ANDed withknowledge_filter, andrecent: true/changed: truewere separate sources)iwe internal claude session briefprints what session start lists (previously the knowledge filter and a recent section ordered byrecency_field)iwe internal claude enableno longer stampscreatedonMEMORY.md, and writes an explicitinjectionslice into the frontmatter for the user to editMEMORY.mddistill knobs are one nested group:distill.max_chunk_size(default 25000, waschunk_charsat 10000),distill.max_proposals(wasmax_proposals_per_read) anddistill.remind_after_days(wasremind_every_days;-1now disables the reminder and0reminds every session, previously0disabled it); theirIWE_DISTILL_*environment twins follow the path, andiwe internal claude policynames a legacy key it finds with its new path- Each
injectionslice may set its ownmax_tokens; a slice with neitherlimitnormax_tokenslists everything it matches
Removed
knowledge_filterandrecency_fieldknobs and theirIWE_*environment twins, therecentandchangedslice sources, and thesession completewarning 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_tokensknob andIWE_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_schemaandquery::query_schema_uri— the query language's JSON Schema, one entry per draft, addressed ashttps://iwe.md/schemas/query/draft/<draft>/schemaschema::iwe_compile_optionsreturns theCompileOptionsa document schema is compiled with, andschema::CompileOptionsis re-exported
Changed
schema::compile_schemaresolves a$refto 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$refnow reports that nothing is registered under that address (was "external references are not allowed")