Skip to content

v0.2.0

Latest

Choose a tag to compare

@github-actions github-actions released this 02 Jun 09:09
9d89436

What's Changed

  • fix(release): publish step finds drafts via listReleases by @0xsongsu in #66
  • docs: refresh README + install.sh to v0.1.0 by @0xsongsu in #67
  • build: prep workspace for crates.io publish by @0xsongsu in #68
  • fix(adapter-codex): turn-by-turn JSONL parsing + mtime → created_at (#69) by @0xsongsu in #70
  • fix(publish-crates): idempotent steps + retry-on-rate-limit by @0xsongsu in #71
  • fix(publish-crates): also match cargo's 'already exists' error by @0xsongsu in #72
  • fix(publish-crates): --no-verify for generic-mcp (dev-dep cycle) by @0xsongsu in #73
  • fix(publish-crates): strip generic-mcp dev-deps before publish by @0xsongsu in #74
  • fix(publish-crates): use cargo exit code as success truth, not grep by @0xsongsu in #75
  • docs(readme): polish for v0.1.0 — crates.io install, 30-sec hero, fix stale notes by @0xsongsu in #76
  • docs+chore: rewrite README, drop ghast adapter, add agent plugin marketplace by @0xsongsu in #78
  • docs(zh): restore 搜魂术 alias and add provenance gloss by @0xsongsu in #79
  • perf(import): batch upsert + single SQLite tx per 64 records (-14% wall on 1800-record import) by @0xsongsu in #80
  • perf(embed+search): batch embedding worker drain + batch packer get_records (Round 63) by @0xsongsu in #81
  • feat(observability): expose import_errors via status + doctor (Round 64) by @0xsongsu in #82
  • feat(mcp): find_related accepts source/instance/kind/scope filter args (Round 65) by @0xsongsu in #83
  • perf(bench): criterion baseline for vector + fulltext search (Round 66) by @0xsongsu in #84
  • perf(store): sqlite-vec foundation — per-dim vec0 + filter pushdown (Round 67 PR-67a) by @0xsongsu in #85
  • perf(search): pack() uses RecordHeader projection — -73% pack latency on long-content records (Round 68) by @0xsongsu in #86
  • feat(observability): MCP request metrics — p50/p95/p99 + count/errors via doctor (Round 69) by @0xsongsu in #87
  • feat(eval): MRR@k + nDCG@k quality harness with threshold gating (Round 70) by @0xsongsu in #88
  • feat(observability): per-stage search tracing — search_memories(trace=true) (Round 71) by @0xsongsu in #89
  • feat(store+cli): anamnesis forget <record_id> — first value-stack move (Round 72 PR-72a) by @0xsongsu in #90
  • feat(mcp): admin-gated forget_record tool — completes R72 across both surfaces (Round 73 PR-72b) by @0xsongsu in #91
  • feat(store+cli+mcp): list_forgotten audit view — redaction-by-default (Round 74 PR-74) by @0xsongsu in #92
  • feat(store+cli+mcp): unforget completes the forget lifecycle (Round 75 PR-75) by @0xsongsu in #93
  • feat(cli): anamnesis search --trace ports R71 stage breakdown to the CLI (Round 76) by @0xsongsu in #94
  • feat(store+cli+mcp): exact-duplicate report via dedupe (Round 77 PR-77) by @0xsongsu in #95
  • feat(store+cli+mcp): user-tag overlay survives re-import (Round 78 PR-78) by @0xsongsu in #96
  • feat(store+cli+mcp): --user-tag search filter, 3-path SQL pushdown (Round 79 PR-78b) by @0xsongsu in #97
  • feat(store+cli+mcp): dedupe --source/--instance filter (Round 80) by @0xsongsu in #98
  • feat(store+cli+mcp): tag_record gains atomic --replace semantic (Round 81) by @0xsongsu in #99
  • feat(store+cli+mcp): list_sources exposes tagged_record_count (Round 82) by @0xsongsu in #100
  • feat(store+cli+mcp): forget --dry-run preview before destructive cascade (Round 83) by @0xsongsu in #101
  • feat(core+cli+mcp): audit tail / audit_tail surfaces audit.log (Round 84) by @0xsongsu in #102
  • feat(mcp-server): get_record { include_lineage } surfaces provenance chain (Round 85) by @0xsongsu in #103
  • feat(store+cli+mcp): source show / source_show per-source detail view (Round 86) by @0xsongsu in #104
  • feat(search+cli+mcp): search --explain / search_memories({ explain: true }) (Round 87) by @0xsongsu in #105
  • feat(cli): source list --json for parity with source show --json (Round 88) by @0xsongsu in #106
  • feat(mcp-server): find_related explain — compact score breakdown in prompt (Round 89) by @0xsongsu in #107
  • feat(store+cli+mcp): list_forgotten --include-counts tombstone aggregation (Round 90) by @0xsongsu in #108
  • feat(cli): audit tail --csv (Round 91) by @0xsongsu in #109
  • feat(mcp-server): audit_tail csv parity with CLI (Round 92) by @0xsongsu in #110
  • feat(mcp-server): find_related --user-tag filter (Round 93) by @0xsongsu in #111
  • feat(store+mcp): summarize_my_preferences user_tag filter (Round 94) by @0xsongsu in #112
  • feat(store+cli+mcp): unforget --dry-run / unforget_record dry_run (Round 95) by @0xsongsu in #113
  • feat(cli+mcp): tag_record stats + filtered list_sources (Round 96) by @0xsongsu in #114
  • feat(store+cli): dedupe --include-counts filter-scoped aggregate (Round 97) by @0xsongsu in #115
  • feat(mcp-server): dedupe include_counts parity with CLI (Round 98) by @0xsongsu in #116
  • feat(cli): source list --source / --instance filter (Round 99) by @0xsongsu in #117
  • feat(mcp-server): find_related summary line (Round 100) by @0xsongsu in #118
  • feat(mcp-server): summarize_my_preferences summary line (Round 101) by @0xsongsu in #119
  • feat(audit): audit tail --action one,two multi-value OR filter (Round 102) by @0xsongsu in #120
  • feat(cli+mcp): list_sources source multi-value OR filter (Round 103) by @0xsongsu in #121
  • feat(store+cli+mcp): dedupe source multi-value OR filter (Round 104) by @0xsongsu in #122
  • feat(mcp): list_forgotten csv (Round 105) by @0xsongsu in #123
  • fix(cli): 8 MB main-thread stack + restore list-forgotten --csv (Round 106) by @0xsongsu in #124
  • feat(cli+mcp): dedupe --csv redacted output (Round 107) by @0xsongsu in #125
  • feat(cli+mcp): dedupe non-CSV format marker (Round 108) by @0xsongsu in #126
  • feat(mcp): list_forgotten + audit_tail JSON format markers (Round 109) by @0xsongsu in #127
  • feat(cli+mcp): doctor source multi-value OR filter (Round 110) by @0xsongsu in #128
  • feat(mcp): prompts/list top-level summary line (Round 111) by @0xsongsu in #129
  • feat(mcp): resources/list top-level summary line (Round 112) by @0xsongsu in #130
  • feat(mcp): tools/list top-level summary line (Round 113) by @0xsongsu in #131
  • feat(cli+mcp): doctor instance multi-value OR filter (Round 114) by @0xsongsu in #132
  • R115: support instance OR filters by @0xsongsu in #133
  • feat(mcp): audit_tail JSON top-level summary line (Round 116) by @0xsongsu in #134
  • feat(mcp): JSON summary parity on list_sources/list_forgotten/dedupe (Round 117) by @0xsongsu in #135
  • feat(mcp): source_show top-level redacted summary (Round 118) by @0xsongsu in #136
  • feat(mcp): search_memories top-level redacted summary (Round 119) by @0xsongsu in #137
  • feat(mcp): get_record top-level redacted summary (Round 120) by @0xsongsu in #138
  • feat(mcp): trace_provenance top-level redacted summary (Round 121) by @0xsongsu in #139
  • feat(mcp): prompts/get response-level redacted summary (Round 122) by @0xsongsu in #140
  • feat(cli): status --json top-level summary + source_summary rollup (Round 123) by @0xsongsu in #141
  • feat(cli): source list --json top-level summary (Round 124) by @0xsongsu in #142
  • feat(cli): dedupe --json top-level redacted summary (Round 125) by @0xsongsu in #143
  • feat(cli): list-forgotten --json top-level redacted summary (Round 126) by @0xsongsu in #144
  • feat(cli): audit tail --json top-level redacted summary (Round 127) by @0xsongsu in #145
  • feat(cli): source show --json top-level redacted summary (Round 128) by @0xsongsu in #146
  • feat(cli): search --json top-level redacted summary (Round 129) by @0xsongsu in #147
  • feat(cli): doctor --json-summary additive envelope (Round 130) by @0xsongsu in #148
  • feat(store): cross-source near-duplicate detection (Round 131) by @0xsongsu in #149
  • feat(cli,mcp): dedupe --mode near + dedupe { mode: "near" } (Round 132 PR-78ba) by @0xsongsu in #150
  • feat(store,cli,mcp): forget --cascade-derived (Round 133 PR-78bb) by @0xsongsu in #151
  • feat(store,cli,mcp): unforget --cascade-derived (Round 134 PR-78bc) by @0xsongsu in #152
  • feat(store,cli,mcp): list cross-adapter native_id content conflicts (Round 135 PR-78bd) by @0xsongsu in #153
  • feat(search,cli,mcp): adaptive candidate-pool policy (Round 136 PR-78be) by @0xsongsu in #154
  • feat(mcp): discover_adapters tool for programmatic capability introspection (Round 137 PR-78bf) by @0xsongsu in #155
  • feat(cli): export --format mem0-sqlite closes the round-trip loop (Round 138 PR-78bg) by @0xsongsu in #156
  • feat(cli): export --format letta-sqlite extends round-trip to Letta (Round 139 PR-78bh) by @0xsongsu in #157
  • feat(export,mcp): export_memories MCP admin tool + shared anamnesis-export crate (Round 140 PR-78bi) by @0xsongsu in #158
  • feat(cli): dedupe --mode near --merge-preview operator-decision tooling (Round 141 PR-78bj) by @0xsongsu in #159
  • chore: trim verbose doc/comment blocks (R142) by @0xsongsu in #160
  • feat(mcp): dedupe near merge_preview parity with CLI (R143) by @0xsongsu in #161
  • feat(cli,mcp): accept_conflict_variant resolves native_id conflicts (R144) by @0xsongsu in #162
  • feat(export): memos-dir round-trip export (R145) by @0xsongsu in #163
  • feat(cli,mcp): reconcile_sources cross-adapter drift diagnostic (R146) by @0xsongsu in #164
  • feat(cli,mcp): reconcile_export_bucket closes the drift loop (R147) by @0xsongsu in #165
  • feat(cli,mcp): import_source --reconcile-export post-import drift hook (R148) by @0xsongsu in #166
  • feat(mcp): discover_adapters surfaces round_trip_export_format (R149) by @0xsongsu in #167
  • feat(cli,mcp,export): reconcile-export derives round-trip format from lagging adapter (R150) by @0xsongsu in #168
  • feat(cli): import --reconcile-export derives format from against adapter (R151) by @0xsongsu in #169
  • feat(cli,mcp): reconcile surfaces lagging adapter's round-trip format (R152) by @0xsongsu in #170
  • feat(export,memori): memori-sqlite round-trip export target (R153) by @0xsongsu in #171
  • feat(export,tdai): tdai-dir round-trip export target (R154) by @0xsongsu in #172
  • feat(export,claude-code): claude-code-dir round-trip export target (R155) by @0xsongsu in #173
  • fix(letta,memos): round-trip identity reconciles as both (R156) by @0xsongsu in #174
  • chore(ci): R150 hardening — concurrency, audit, deny, doctests, doc (-D warnings) by @0xsongsu in #175
  • feat(cli): anamnesis watch — install-and-auto-sync daemon (R151, PR 1 of N) by @0xsongsu in #176
  • feat(cli): watch auto-start at login — install/uninstall/status (R152) by @0xsongsu in #177
  • feat(cli): drain embeddings under watch + fix model-cache path (R153) by @0xsongsu in #178
  • feat(cli): watch heartbeat + runtime status (R154) by @0xsongsu in #179
  • feat(cli): interval-poll generic-mcp under watch + advance watermark (R155) by @0xsongsu in #180
  • feat(mcp): watch_status tool + shared core heartbeat type (R156) by @0xsongsu in #181
  • docs(watch): document auto-sync in README + fix stale clap help (R157) by @0xsongsu in #182
  • refactor(cli): extract shared build_fs_adapter factory (R158) by @0xsongsu in #183
  • refactor(cli): migrate doctor health probe onto build_fs_adapter (R159) by @0xsongsu in #184
  • feat(store): natural-language FTS query planning — strict AND + relaxed OR recall (R160) by @0xsongsu in #185
  • fix(search,ci): accept keyword mode alias and restore audit permissions by @0xsongsu in #186
  • release: 0.2.0 by @0xsongsu in #187

Full Changelog: v0.1.0...v0.2.0