Releases: mbe24/zaungast
Releases · mbe24/zaungast
Release list
v0.5.0
Added
- Add browser support for reading, ingesting, and querying a Teams cache.
- Add a
./webentry point built on a pluggableSqlDriverseam, with anode:sqlitedriver and an optional@sqlite.org/sqlite-wasmbrowser driver atlibzaungast/web/sqlite-wasm-driver(installed separately, only if you use it). - Add
openStoreFromSource, a single build path that behaves identically in Node and the browser, with an optionalonPhasehook for build-progress reporting. - Speed up the first read with an optional Web Worker pool (
createPool,handlePoolMessage,openStoreFromSourceParallel,extractFromSourceParallel) that parses.ldbfiles and extracts records in parallel, falling back to serial automatically. - Add a
deferFtsoption to build the full-text search index lazily on first search instead of during ingest. - Add an engine-agnostic data seam (
shapeBaseTables,deriveTables,baseMeta, and named row types), a read-onlyrawDbaccessor, and topic-scorer exports, so a non-SQLite backend or custom analytics can build a byte-matching store. - Add organization, profile type, and structured given/surname names to people, recovered for federated (external) contacts.
Full Changelog: v0.4.0...v0.5.0
v0.4.0
Added
- Publish the reader as a standalone
libzaungastpackage with a public data facade, split out from thezaungastMCP server. - Add an optional native (Rust) ingest engine,
libzaungast-native, selectable viaZAUNGAST_ENGINE, with byte-identical output and an incremental-refresh path. - Add
get_messageandread_threadtools. - Render channel conversations by reply-chain (threaded).
- Persist conversation thread type, as a foundation for Teams Communities data.
Changed
- Rename the
top_topicstool torank_topics, andread_messagestoread_conversation(per-thread and single-message reads move to the newread_threadandget_messagetools). - Report the real package version in the MCP server info and startup banner.
- Speed up ingest and structured-clone decode via whole-file reads, memoized prefix decoding, single-pass HTML-to-text, and delta full-text indexing on refresh.
Fixed
- Match the Teams schema by exact fingerprint through a versioned mapping registry, instead of guessing.
Full Changelog: v0.3.0...v0.4.0
v0.3.0
Added
- Add
list_eventsandlist_callstools for calendar events and call history. - Auto-discover the Teams store on macOS.
Fixed
- Label your own messages with your name and
(you)instead ofME. - Encode
chain_keyNUL-safely (hex) so reply-chain keys containing NUL bytes ingest correctly.
Full Changelog: v0.2.0...v0.3.0
v0.2.0
Added
- Render emoji reactions in
read_messages. - Decode Blink blob values (
kHostObject), completing structured-clone value coverage.
Changed
- Speed up structured-clone decode by roughly 2×.
Fixed
- Decode
BigIntvalues instead of substituting0.
Full Changelog: v0.1.1...v0.2.0
v0.1.1
Re-release of 0.1.0 with no functional changes.
Fixed
- Add the repository metadata npm requires for a provenance publish.
Full Changelog: v0.1.0...v0.1.1
v0.1.0
Initial release.
Added
- Provide six read-only MCP tools:
list_conversations,read_messages,search,top_topics,find_person, anddescribe_schema. - Read the Chromium IndexedDB-on-LevelDB store the Teams app writes in pure JavaScript — an SSTable and write-ahead-log parser, a Snappy decoder, Chromium IndexedDB key coding, and a Blink/V8 structured-clone deserializer — with no native dependencies and no
idb_cmp1comparator (full scan plus sequence-number dedup). - Auto-discover the local Teams IndexedDB directory with zero configuration (override with
TEAMS_LEVELDB_DIR). - Index the data in an in-memory SQLite database (
node:sqlite) with FTS5 full-text search. - Refresh incrementally in two modes —
copy-reuse(default; reuses immutable.ldbparses and re-reads only the write-ahead log) andreparse(ZAUNGAST_INCREMENTAL=reparse) — proven to produce identical results. - Score
top_topicsby distinctiveness against a baseline, with bot exclusion, per-callexclude(words or handles), and arbitrarysince/untilwindows. - Disclose the local cache horizon: empty or edge results report the coverage window, so a quiet result is never mistaken for "the cache doesn't reach that far".
- Ship extensible English and German stopword sets.
- Guarantee read-only access — the live Teams directory is only ever read or copied, never opened for writing, locked, or memory-mapped, so the reader cannot corrupt the Teams store.
Full Changelog: https://github.com/mbe24/zaungast/commits/v0.1.0