Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
602 commits
Select commit Hold shift + click to select a range
31bc2f8
Merge pull request #2050 from rohanprichard/fix/issue-2044-dedup-conv…
igorls Aug 2, 2026
c57b1cd
Merge pull request #2090 from fatkobra/fix/2080-round-trippable-drawe…
igorls Aug 2, 2026
2accb56
Merge pull request #2125 from MemPalace/fix/2089-onto-develop
igorls Aug 2, 2026
aa47be1
Merge pull request #2072 from xcarbo/contrib/stdin-eof-self-exit
igorls Aug 2, 2026
a929e17
Merge pull request #2029 from mvalentsev/fix/2014-daemon-lock-content…
igorls Aug 2, 2026
217de20
merge: resolve #2103 onto develop (keep lease + RO gate tests)
igorls Aug 2, 2026
4009e75
merge: resolve #2065 onto develop (union palace test imports)
igorls Aug 2, 2026
6ec2030
Merge pull request #2126 from MemPalace/fix/2103-onto-develop
igorls Aug 2, 2026
f2e9fef
Merge pull request #2127 from MemPalace/fix/2065-onto-develop
igorls Aug 2, 2026
e1fc71a
chore(release): 3.7.0
igorls Aug 2, 2026
df273c0
Merge pull request #2128 from MemPalace/chore/release-3.7.0
igorls Aug 2, 2026
ee03d65
fix: harden release polish for bot findings and search errors
igorls Aug 2, 2026
a337caf
Merge pull request #2130 from MemPalace/fix/release-3.7.0-polish
igorls Aug 2, 2026
5cebe66
fix(convos): honor mined state during dry runs
fatkobra Aug 2, 2026
bd94573
fix(sweep): collapse repeated message UUIDs before upsert
fatkobra Aug 2, 2026
bbcb86d
fix(embedding): remap unsupported EmbeddingGemma token IDs
fatkobra Aug 2, 2026
d52d512
fix(hooks): ingest only the active transcript
fatkobra Aug 2, 2026
d1ff138
fix(repair): honor --dry-run for repair --mode from-sqlite
igorls Aug 2, 2026
98647f2
test: expect dry_run=False on rebuild-index alias call
igorls Aug 2, 2026
a5bf4aa
feat(searcher): wire i18n stop words into BM25 tokenizer (#973)
mvalentsev Jun 6, 2026
69dc7fb
Merge pull request #2138 from MemPalace/fix/2133-from-sqlite-dry-run
igorls Aug 2, 2026
a4fc26e
Merge pull request #2134 from fatkobra/fix/2118-convo-dry-run-mined-s…
igorls Aug 3, 2026
efa1820
Merge pull request #2136 from fatkobra/fix/embeddinggemma-image-soft-…
igorls Aug 3, 2026
5e1437e
merge: resolve #2137 onto develop (keep dry-run + single-file tests)
igorls Aug 3, 2026
3c46c8d
Merge pull request #2140 from MemPalace/fix/2137-onto-develop
igorls Aug 3, 2026
511ead9
Merge pull request #977 from mvalentsev/feat/searcher-i18n-stopwords
igorls Aug 3, 2026
c56f8b3
fix(windows): add legacy encoding repair tool
fatkobra Aug 3, 2026
5f425ba
fix(convo-miner): skip Claude Code subagent transcripts by default (#…
mvalentsev May 3, 2026
a3350ec
fix(convo-miner): tighten subagent filter per pre-undraft review
mvalentsev May 3, 2026
4497753
fix(encoding): make repair conservative and reversible
fatkobra Aug 3, 2026
67dcaf3
fix(encoding): recover undefined CP1252 continuation bytes
fatkobra Aug 3, 2026
047d733
ci: retry transient Chroma reader initialization failure
igorls Aug 3, 2026
1d113e4
Merge pull request #2148 from fatkobra/fix/1055-repair-legacy-encoding
igorls Aug 3, 2026
d80a1f4
fix(mcp): refuse vector writes into a diverged HNSW index instead of …
Evgen197310 Aug 5, 2026
2f000ad
Merge branch 'develop' into feat/hermes-provider-core
raman325 Aug 5, 2026
b6fad9e
fix(mine): safely gate source adapter dry runs and incremental protocol
ggettert Aug 5, 2026
449d6d8
ci: retrigger flaky windows hermes integration test
raman325 Aug 5, 2026
e64aa92
test(chroma): assert the HNSW defaults rather than a threshold arithm…
joshuafontany Aug 5, 2026
67a5fbe
feat(serve): route CLI/hook mines through a live palace hub
igorls Jul 1, 2026
c16332f
feat(mcp): stdio servers proxy to a live palace hub
igorls Jul 1, 2026
3eee0d7
feat(serve): allowlist fronting-proxy hostnames on loopback binds
igorls Jul 1, 2026
3bed756
feat(serve): add authenticated /statusz operational endpoint
igorls Jul 2, 2026
4ab2716
feat(logstream): RFC 003 agent coordination logstream, phases 1-2
igorls Jul 2, 2026
62df5fe
feat(cli): logstream and artifact commands (RFC 003 phase 3)
igorls Jul 2, 2026
77c8998
docs(logstream): concept page, tool/CLI references, coordination prot…
igorls Jul 2, 2026
a9f19a2
docs(rfc): mark RFC 003 implemented — first patch delivered via logst…
igorls Jul 2, 2026
a50677d
feat(logstream): warn at store time on unappliable kind=patch artifacts
igorls Jul 2, 2026
5325e0b
feat(logstream): event_wait accepts limit, matching event_list filters
igorls Jul 2, 2026
cc62e77
docs(guide): Shared Brain — running one palace for a whole agent fleet
igorls Jul 2, 2026
3599ba7
docs(guide): shared-brain — fold in Windows remote-agent lessons
igorls Jul 2, 2026
5ab0a51
test(hub-forward): make registry/proxy tests Windows-portable
igorls Jul 2, 2026
d973e44
feat(logstream): phase 5 — SSE stream + lock-free hub dispatch (RFC 003)
igorls Jul 2, 2026
dd97116
docs(rfc): RFC 004 — the replicated palace (skeleton + storage sections)
igorls Jul 2, 2026
d5d6225
docs(rfc): RFC 004 — transport, security, and PalaceMind sections; dr…
igorls Jul 2, 2026
f7c174e
feat(logsync): RFC 004 step 0 — logstream multi-master replication
igorls Jul 2, 2026
0b22602
feat(replica): RFC 004 step 1 — memory read replicas (snapshot pull +…
igorls Jul 2, 2026
5381035
docs(rfc): RFC 004 — local-capture promotion + v4 dedup as step-2 com…
igorls Jul 2, 2026
a06dbab
docs(rfc): record step-2 rollout decisions (Igor, 2026-07-02)
igorls Jul 2, 2026
5e6580d
fix(replica): authored-only snapshots — bidirectional pull pairs with…
igorls Jul 2, 2026
7a61b65
fix(replica): thread pull_kg through the peers.json pull path
igorls Jul 2, 2026
9eb8c22
feat(replica): distributed embedding — vectors computed at origin, fo…
igorls Jul 2, 2026
a3d8826
fix(sync): env-tunable peer HTTP timeout (MEMPALACE_SYNC_HTTP_TIMEOUT)
igorls Jul 2, 2026
fc17b15
feat(sync): /sync/peers — the estate endpoint the mesh UI was missing
igorls Jul 2, 2026
c311f4b
feat(transport): the RFC 004 transport seam — MeshGuard integration s…
igorls Jul 3, 2026
a11f267
docs(website): the replicated palace — mesh documentation catches up …
igorls Jul 3, 2026
32b96cd
docs(website): existing palaces join the mesh additively — the common…
igorls Jul 3, 2026
00050b3
feat(estate): node profiles + mempalace_mesh_peers — the estate stops…
igorls Jul 3, 2026
bc0c591
fix(estate): mempalace_mesh_peers survives the palace integrity gate
igorls Jul 3, 2026
e12a8da
feat(logstream): mempalace_event_list preview mode — scan the stream …
igorls Jul 4, 2026
b545eb3
docs(rfc): RFC 005 — agent identity & routing (host:agent:project)
igorls Jul 4, 2026
db8e588
fix: guard HLC against future clock poisoning
igorls Jul 7, 2026
83281b0
fix: widen minted replica ids
igorls Jul 7, 2026
dd19c19
docs: clarify replication auth boundaries
igorls Jul 7, 2026
3d9c156
docs: clarify logstream wait and tunnel semantics
igorls Jul 7, 2026
0e79797
fix: stabilize Chroma embeddings on Windows
igorls Jul 7, 2026
2b56ea2
style: ruff-format drift in tests/conftest.py after slice rebase
igorls Aug 6, 2026
8a01991
docs: restore develop's README/mcp-tools content lost in the slice re…
igorls Aug 6, 2026
f78fe31
docs: scope the mesh docs to what 3.7.0 actually ships
igorls Aug 6, 2026
123d01a
feat(3.7.0): agent logstream — scope the slice to coordination only
igorls Aug 6, 2026
121a455
perf(embedding): group documents by size before sub-batching (#2104)
mvalentsev Aug 6, 2026
5bc539d
test(convo-miner): pin subagent skip against explicit single-file tar…
mvalentsev Aug 6, 2026
6093340
fix(normalize): parse ChatGPT export arrays, not just single conversa…
mvalentsev Aug 6, 2026
495a12b
fix(repair): honor --dry-run in the default mode (#2144)
mvalentsev Aug 6, 2026
141e16f
fix(mine): harden source adapter dispatch
ggettert Aug 6, 2026
2f72c91
fix(codex): make marketplace plugin installable
miky-mfw Aug 7, 2026
3991bef
chore(deps-dev): bump ruff from 0.15.20 to 0.16.1
dependabot[bot] Aug 7, 2026
b62c5f9
fix(logstream): read and write artifact content as bytes, never text …
igorls Aug 7, 2026
b757aa7
Merge pull request #2158 from Evgen197310/fix/hnsw-diverged-write-gate
igorls Aug 7, 2026
87f2154
Merge pull request #2145 from mvalentsev/fix/repair-legacy-dry-run
igorls Aug 7, 2026
e071503
Merge pull request #2166 from mvalentsev/fix/2160-chatgpt-export-array
igorls Aug 7, 2026
759b127
Merge pull request #2149 from mvalentsev/perf/2104-embeddinggemma-siz…
igorls Aug 7, 2026
aa3eca5
Merge remote-tracking branch 'origin/develop' into fix-ruff-2181
igorls Aug 7, 2026
8bc41e0
ci: bump the ruff pin with the dependency, and guard the drift
igorls Aug 7, 2026
d1d904f
fix(mcp): refuse writes when the served library is no longer installe…
mvalentsev Jul 27, 2026
55d6c97
Merge pull request #2162 from MemPalace/feat/logstream-3.7.0
igorls Aug 8, 2026
e73e75b
Merge pull request #2181 from MemPalace/dependabot/pip/ruff-0.16.1
igorls Aug 8, 2026
011e63e
fix(mcp): resolve chunked diary entries by their entry_id (#2185)
igorls Aug 8, 2026
753ecd6
fix: crash in --llm-rerank output for model names without a dash
ATKabli Aug 6, 2026
d64ad8d
fix: print the full model tag in the longmemeval summary header too
ATKabli Aug 8, 2026
547f565
fix(backends): convert embedding vectors to Python floats before upsert
igorls Aug 8, 2026
0943bf2
docs(changelog): note the Chroma embedding-vector fix under 3.7.0
igorls Aug 8, 2026
6fb5a58
fix(docker): drop the null `environment:` block that invalidated compose
igorls Aug 8, 2026
d4b439b
docs(changelog): note the compose validity fix under 3.7.0
igorls Aug 8, 2026
0b5c560
Merge pull request #2187 from MemPalace/fix/chroma-embedding-numpy-fl…
igorls Aug 8, 2026
0ff93ca
Merge pull request #2188 from MemPalace/fix/compose-null-environment-…
igorls Aug 8, 2026
01a4a26
ci(docker): run the image before publishing it
igorls Aug 8, 2026
26a1101
docs(changelog): note the Docker smoke test under 3.7.0
igorls Aug 8, 2026
0bb2d12
fix(ci): make the smoke fixture readable by the container's uid
igorls Aug 8, 2026
656e0a4
test(backends): cover the _embed_texts fallback and empty-batch guard
mbeacom Aug 8, 2026
96bd4b4
Merge pull request #2186 from MemPalace/fix/2185-diary-chunk-logical-id
igorls Aug 8, 2026
c7a026b
Merge pull request #2189 from MemPalace/ci/docker-smoke-test
igorls Aug 8, 2026
accb4e3
fix(service): restore MEMPALACE_PALACE_PATH after the call that stamp…
joshuafontany Aug 8, 2026
0ae26bd
fix(encoding): replace non-ASCII symbols in CLI output (#1034)
arnoldwender Apr 22, 2026
5aa0e11
fix(encoding): replace non-ASCII chars in entity_detector output paths
arnoldwender May 1, 2026
8c28562
fix(encoding): extend non-ASCII console sweep to the 11 remaining mod…
arnoldwender Aug 8, 2026
89b2fa6
fix(repair): hold writer lease across rebuild_index
KeilerHirsch Aug 8, 2026
0e60e51
fix(repair-encoding-cli): reconfigure stdio to UTF-8 like the other e…
arnoldwender Aug 8, 2026
a85c1fd
docs(readme): lead the Docker section with the published image
igorls Aug 8, 2026
c88997b
docs(changelog): note the Docker README rewrite under 3.7.0
igorls Aug 8, 2026
8516db7
Merge pull request #2196 from MemPalace/docs/docker-pull-and-mounts
igorls Aug 8, 2026
a6b2a73
fix(encoding): handle legacy codepage config migration
KeilerHirsch Aug 9, 2026
fec10df
style: format encoding migration follow-up
KeilerHirsch Aug 9, 2026
2d4e108
fix(extractor): ignore markdown emphasis as emotion
KeilerHirsch Aug 9, 2026
351e62f
fix(deploy): survive the MCP idle watchdog exit in the systemd unit
rubicon Aug 9, 2026
618764e
docs: document MEMPALACE_MCP_IDLE_HOURS
rubicon Aug 9, 2026
8cf2be7
fix(hooks): derive wing from project, not the git-worktree dir
bethaniamh Aug 10, 2026
854276c
fix(encoding): require local evidence before repairing the ambiguous …
arnoldwender Aug 10, 2026
92140ca
fix: handle unavailable MCP stdout redirection
MohabMohie Aug 10, 2026
f414bb8
fix(mine): make source adapter dry runs inert
ggettert Aug 10, 2026
466a1f8
Merge origin/develop into pr-2068
ggettert Aug 10, 2026
ba163b1
test(mine): close round-3 review gaps with real regressions
ggettert Aug 10, 2026
b676b2b
test(mine): complete source adapter dispatch coverage
ggettert Aug 10, 2026
becc633
fix(backups): stop a socket in the palace from aborting repair (#2207)
mvalentsev Aug 11, 2026
f44a95d
Merge pull request #2199 from KeilerHirsch/fix/2197-markdown-emotion-…
igorls Aug 11, 2026
fb0312f
Merge pull request #2206 from bethaniamh/fix-wing-worktree
igorls Aug 11, 2026
441f4bb
Merge pull request #2203 from rubicon/fix/server-unit-survives-idle-exit
igorls Aug 11, 2026
5fa892e
Merge pull request #2178 from miky-mfw/codex/fix-codex-marketplace-in…
igorls Aug 11, 2026
3f52734
Merge pull request #2192 from amorphous-dreams/fix/service-restores-p…
igorls Aug 11, 2026
3db1c5b
Merge pull request #2038 from messelink/feat/pgvector-facet-counts
igorls Aug 11, 2026
a09ba41
Merge pull request #2135 from fatkobra/fix/2112-sweep-repeated-uuid
igorls Aug 11, 2026
cd1c272
Merge pull request #2195 from KeilerHirsch/integration/spark-safety-c…
igorls Aug 11, 2026
05ae73f
Merge pull request #2098 from KeilerHirsch/fix/utf8-encoding-hardening
igorls Aug 11, 2026
ffb5559
Merge pull request #2194 from arnoldwender/fix/repair-encoding-cli-st…
igorls Aug 11, 2026
c38cbf7
Merge pull request #2208 from arnoldwender/fix/encoding-repair-ambigu…
igorls Aug 11, 2026
b4345e8
Merge pull request #1104 from arnoldwender/fix/encoding-non-ascii-sweep
igorls Aug 11, 2026
3161cae
Merge pull request #1330 from mvalentsev/fix/convo-miner-skip-subagents
igorls Aug 11, 2026
db9c917
Merge pull request #2212 from mvalentsev/fix/2207-repair-backup-non-r…
igorls Aug 11, 2026
d471a9e
feat(embedding): add OpenAI-compatible /v1/embeddings backend
maximilize Jun 1, 2026
f272c84
fix(embedding): harden API error handling (PR #1671 review)
maximilize Jun 1, 2026
d9a24c7
fix(embedding): land openai-compat EF cleanly on develop
igorls Aug 11, 2026
9bc8cdd
Merge pull request #1671 from maximilize/feat/openai-compat-embeddings
igorls Aug 11, 2026
2a2466c
docs: draft RFC 001 — storage backend plugin specification (#737)
igorls Apr 12, 2026
f142458
docs: align capability token names in RFC 001
igorls Apr 12, 2026
ed79ccf
docs(rfc-001): strengthen embeddings contract and migration safety
igorls Apr 12, 2026
bd3ea6b
docs(rfc-001): close four spec defects surfaced in review
igorls Apr 13, 2026
9671551
docs(rfc-001): flag mcp_server cache/reconnect for §10 cleanup
igorls Apr 13, 2026
4416dbd
docs(rfc-001): resolve review blockers; accept storage-backend spec
igorls Jun 8, 2026
aeac794
docs(rfc-001): fold §4.4 review nits; accept storage-backend spec
igorls Aug 11, 2026
174dc31
Merge pull request #743 from MemPalace/docs/rfc-storage-backend-plugi…
igorls Aug 11, 2026
b8c92f8
Merge pull request #2211 from MohabMohie/fix/windows-mcp-fd-capture-f…
igorls Aug 11, 2026
be27e78
Merge pull request #2081 from mvalentsev/fix/899-stale-library-detection
igorls Aug 11, 2026
f5a766a
Merge pull request #2068 from ggettert/feat/2062-mine-source-registry…
igorls Aug 11, 2026
7eaa3bc
Merge pull request #1915 from raman325/feat/hermes-provider-core
igorls Aug 11, 2026
27212e5
fix(palace): reap orphaned per-source-file mine locks
fxinfo24 Aug 9, 2026
2174eb0
Merge pull request #2200 from fxinfo24/fix/reap-orphaned-mine-locks
igorls Aug 11, 2026
5036e3c
feat(search): add since/before date window to search surfaces (#463)
mvalentsev Jul 12, 2026
97be77c
Merge pull request #2000 from mvalentsev/feat/search-date-filter-463
igorls Aug 11, 2026
94a41ee
fix(hermes): stop second Chroma client racing the filing worker
igorls Aug 11, 2026
eb8090e
Merge pull request #2215 from MemPalace/fix/wave2-ci-hermes-chroma-race
igorls Aug 11, 2026
cb9356e
fix(tests): isolate lock-reap home on Windows via USERPROFILE
igorls Aug 11, 2026
7ebde7d
Merge pull request #2216 from MemPalace/fix/wave2-windows-lock-reap-home
igorls Aug 11, 2026
5253819
Merge pull request #555 from grtninja/codex/fix-541-contributing-disc…
igorls Aug 11, 2026
77b00d0
Merge pull request #2204 from rubicon/docs/document-mcp-idle-hours
igorls Aug 11, 2026
b6eae9b
Merge pull request #2191 from mbeacom/mbeacom-fix-numpy2-embedding-fl…
igorls Aug 11, 2026
df857cc
Merge pull request #2163 from ATKabli/fix/rerank-label-dashless-model
igorls Aug 11, 2026
cedbba0
Merge pull request #597 from grtninja/codex/mx3-public-shim-example
igorls Aug 11, 2026
1c6fad7
Merge pull request #2159 from amorphous-dreams/fix/hnsw-defaults-foll…
igorls Aug 11, 2026
7ba6c3a
docs(changelog): fold wave 1–3 notes into 3.7.0 for release
igorls Aug 11, 2026
1004572
Merge pull request #2217 from MemPalace/docs/changelog-370-release
igorls Aug 11, 2026
fd81cc5
chore: merge main into develop before 3.7.0 promotion
igorls Aug 11, 2026
cb7ba7f
Merge pull request #2218 from MemPalace/chore/sync-main-into-develop
igorls Aug 11, 2026
7db7e0b
Merge pull request #2129 from MemPalace/develop
igorls Aug 11, 2026
eb0e776
docs(changelog): tighten 3.7.0 notes to match prior release style
igorls Aug 11, 2026
cb03ee6
fix(tests): harden hybrid search against empty Windows Chroma reads
igorls Aug 11, 2026
9a3afc9
Merge pull request #2220 from MemPalace/fix/windows-hybrid-search-emp…
igorls Aug 11, 2026
db29959
fix(ingest): never block on a non-regular file (#2221)
mvalentsev Aug 11, 2026
0f3f0c6
docs(changelog): note the non-regular-file ingest hang (#2221)
mvalentsev Aug 11, 2026
b210423
Merge pull request #2219 from MemPalace/docs/changelog-370-readable
igorls Aug 11, 2026
f19f961
merge: fix(miner) re-mine completion safety (#2088)
igorls Aug 11, 2026
1654cd2
fix: 3.7.1 critical patch — re-mine honesty + SIGTERM lock release
igorls Aug 11, 2026
d9bae30
docs: align website contributing guide with root (#1980)
mvalentsev Jul 11, 2026
1104089
merge: fix(mcp) reset chromadb System cache on reconnect (#2002, #2026)
igorls Aug 12, 2026
f32f362
merge: fix(chroma) reset System cache on backend reopen (#2028, #2032)
igorls Aug 12, 2026
759b8f1
fix(convo): stamp chunk_total and clean partial multi-batch mines (#2…
igorls Aug 12, 2026
fc1431a
test(repair): release SharedSystemClient after seeding for Windows re…
igorls Aug 12, 2026
83d8cbd
Merge pull request #2228 from MemPalace/fix/3.7.1-critical-patch
igorls Aug 12, 2026
583fff5
chore(release): 3.7.1
igorls Aug 12, 2026
10eeb45
Merge pull request #2238 from MemPalace/chore/release-3.7.1
igorls Aug 13, 2026
a5a4071
chore: merge main into develop after 3.7.0 promotion
igorls Aug 13, 2026
906b918
Merge pull request #2242 from MemPalace/chore/sync-main-into-develop-…
igorls Aug 13, 2026
ba5a539
fix(ingest): finish the non-regular-file guards left out of 3.7.1 (#2…
mvalentsev Aug 13, 2026
f3b759c
docs: align website contributing guide with root (#1980) (#1996)
igorls Aug 15, 2026
06cb698
fix(ingest): finish the non-regular-file guards left out of 3.7.1 (#2…
igorls Aug 15, 2026
18cf07f
fix(repair): check the FTS5 content table before rebuilding from it (…
mvalentsev Aug 15, 2026
39a971c
fix(ci): replace inactive owner in CODEOWNERS
igorls Aug 16, 2026
639c69a
Merge pull request #2285 from MemPalace/fix/codeowners-remove-inactiv…
igorls Aug 16, 2026
698a1c6
fix(embedding): never let CoreML return NaN vectors for embeddinggemma
marcoaperez Aug 16, 2026
1383a68
chore(deps): bump docker/login-action from 4 to 4.5.2 (#2117)
dependabot[bot] Aug 18, 2026
7b23986
chore(deps): bump actions/setup-python from 6 to 7 (#2073)
dependabot[bot] Aug 18, 2026
da80ca1
ci: attach provenance and SBOM attestations to the published image (#…
kobihikri Aug 18, 2026
368972e
docs: clarify hook write routing release scope (#2123)
Taylor-yuhb Aug 18, 2026
3fffd0b
docs: document KG supersede usage (#2059)
ggettert Aug 18, 2026
a6c85eb
docs: add Termux PRoot installation guide (#2139)
seoseo-ai Aug 18, 2026
a3e3444
test: add knowledge_graph metadata coverage (#913)
fatkobra Aug 18, 2026
9d79169
test: add palace_graph ranking and limits coverage (#916)
fatkobra Aug 18, 2026
e40cdef
test(benchmarks): enforce the 100ms startup injection budget (#1140)
arnoldwender Aug 18, 2026
7843291
fix(benchmarks): explicit utf-8 encoding + ASCII-safe print chrome on…
jphein Aug 18, 2026
517a7a0
fix: remove hardcoded fallback names from split_mega_files (#166)
adv3nt3 Aug 18, 2026
ec98196
Revert "test: add palace_graph ranking and limits coverage (#916)" (#…
igorls Aug 19, 2026
4e3a3dd
fix(chroma): stop the client cache invalidating on its own writes (#2…
igorls Aug 19, 2026
c860fb1
fix(sqlite_exact): speed up query and status on large palaces (#2308)
igorls Aug 19, 2026
db836b7
fix(mesh): publish the estate so every transport can report it (#2309)
igorls Aug 19, 2026
901d9e4
fix(sqlite_exact): cut remaining palace-wide read paths
igorls Aug 19, 2026
085d45a
perf(mcp): make a proxied stdio session stop loading the storage stack
igorls Aug 19, 2026
b9bff46
Merge pull request #2311 from MemPalace/fix/sqlite-exact-hot-paths
igorls Aug 19, 2026
e94b1c9
fix(sqlite_exact): index wing/room/hall for structured access
igorls Aug 20, 2026
56fa265
Merge pull request #2312 from MemPalace/fix/thin-stdio-proxy
igorls Aug 20, 2026
1ddff05
Merge pull request #2313 from MemPalace/fix/sqlite-exact-locus-columns
igorls Aug 20, 2026
2c4e76b
fix(chroma): read list_drawers and tunnels from sqlite, skip HNSW
igorls Aug 20, 2026
5675389
fix(chroma): keep the listing scan off documents and push filters int…
igorls Aug 20, 2026
570891e
Merge pull request #2314 from MemPalace/fix/chroma-sqlite-metadata-reads
igorls Aug 20, 2026
1670a9e
docs(logstream): how agents should monitor the stream, and the cursor…
igorls Aug 20, 2026
581efdf
feat(logstream): add `logstream watch`, a background watcher agents c…
igorls Aug 20, 2026
0d3f216
fix(logstream): honor idle deadline, checkpoint after print, fix prev…
igorls Aug 20, 2026
8663ecd
fix(logstream): start a cursorless watch at the tip, not the start of…
igorls Aug 20, 2026
57d8d24
fix(logstream): close the second Codex round on watch
igorls Aug 20, 2026
b35bfc1
fix(logstream): a stateful watch on an empty log must leave a cursor …
igorls Aug 20, 2026
dd9b123
fix(logstream): an unreachable checkpoint must replay, and the first …
igorls Aug 20, 2026
b5c4af4
fix(logstream): checkpoint the starting position once, whatever produ…
igorls Aug 20, 2026
af9b7e2
fix(logstream): validate the starting cursor, and stop reading a nega…
igorls Aug 20, 2026
c3ad155
fix(logstream): validate watch arguments once, before anything starts…
igorls Aug 20, 2026
bd97300
Merge pull request #2315 from MemPalace/docs/logstream-monitoring
igorls Aug 20, 2026
34e6bd7
Merge pull request #2283 from Taiko-Solutions/claude/distracted-teres…
igorls Aug 20, 2026
fe8e748
Merge pull request #2279 from mvalentsev/fix/fts5-heal-corroborate-co…
igorls Aug 20, 2026
32567b7
chore(release): 3.8.0
igorls Aug 20, 2026
5590351
ci: guard OpenClaw skill version
igorls Aug 20, 2026
3e56979
Merge pull request #2316 from MemPalace/chore/release-3.8.0
igorls Aug 20, 2026
910a2a5
chore: record upstream 8516db7f as already-incorporated (ancestry rep…
jphein Aug 21, 2026
e3df2f0
sync: upstream/develop through v3.8.0 (3e56979f) — 166 commits, 15 co…
jphein Aug 21, 2026
3c1987c
ci: lychee — exclude all upstream compare links (changelog runs ahead…
jphein Aug 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .agents/plugins/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
"name": "mempalace",
"source": {
"source": "local",
"path": "./.codex-plugin"
"path": "./"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "NONE"
"authentication": "ON_INSTALL"
},
"category": "Coding"
}
Expand Down
13 changes: 9 additions & 4 deletions .antigravity-plugin/skills/mempalace-recall/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,11 @@ and violates MemPalace's "memory should feel instant" budget.
5. **After a substantive session**, record continuity with
`mempalace_diary_write` (background hooks may already do this — do not
double-file).
6. **When a fact changes**, call `mempalace_kg_invalidate` on the old
fact, then `mempalace_kg_add` for the new one.
6. **When a fact changes**, choose the operation that preserves temporal
history: use `mempalace_kg_supersede` for single-valued replacements
(model, employer, owner, address, current status),
`mempalace_kg_invalidate` for facts that ended without replacement,
and `mempalace_kg_add` for independent/coexisting facts.

The full canonical protocol — shared verbatim with the Antigravity
recall rule and the other integrations — lives in
Expand All @@ -78,6 +81,7 @@ recall rule and the other integrations — lives in
|---|---|
| Find any memory by meaning | `mempalace_search` (start here) |
| Relational / time-bound facts about an entity | `mempalace_kg_query` |
| Replace a single-valued fact | `mempalace_kg_supersede` |
| The chronological story of an entity | `mempalace_kg_timeline` |
| Recent session continuity | `mempalace_diary_read` |
| Which wings / rooms exist (scope unknown) | `mempalace_list_wings`, `mempalace_list_rooms` |
Expand All @@ -97,8 +101,9 @@ question — not a system prompt or pasted conversation) plus optional
installer `hooks/antigravity/install.sh`). Do not silently fall back
to guessing from model memory.
- **Stale or conflicting facts.** Prefer the knowledge graph's
time-valid answer; if a fact has changed, invalidate the old one and
add the new one rather than overwriting context silently.
time-valid answer. Use `mempalace_kg_supersede` for single-valued replacements,
`mempalace_kg_invalidate` for facts that ended without replacement,
and `mempalace_kg_add` for independent/coexisting facts.

## Anti-patterns — never do these

Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"name": "mempalace",
"source": "./.claude-plugin",
"description": "AI memory system — mine projects and conversations into a searchable palace. 48 MCP tools, auto-save hooks, guided setup.",
"version": "3.7.0",
"version": "3.8.0",
"author": {
"name": "milla-jovovich"
}
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "mempalace",
"version": "3.7.0",
"version": "3.8.0",
"description": "Give your AI a memory — mine projects and conversations into a searchable palace. 48 MCP tools, auto-save hooks, and guided setup.",
"author": {
"name": "milla-jovovich"
Expand Down
10 changes: 7 additions & 3 deletions .claude-plugin/skills/mempalace-recall/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,10 @@ a variable, fixing a typo). Recall is question-driven, not reflexive.
stored content.
4. After a substantive session, record continuity with
`mempalace_diary_write` (skip if a background hook already saved).
5. When a fact changes: `mempalace_kg_invalidate` the old fact, then
`mempalace_kg_add` the new one.
5. When a fact changes: use `mempalace_kg_supersede` for
single-valued replacements, `mempalace_kg_invalidate` for facts that
ended without replacement, and `mempalace_kg_add` for
independent/coexisting facts.

## Unhappy paths

Expand All @@ -61,7 +63,9 @@ a variable, fixing a typo). Recall is question-driven, not reflexive.
--archive-existing --yes`), not re-mine, which drops MCP-added drawers
and diary entries (#1843). Do not repair in-process.
- **Conflicting facts** — trust the knowledge graph's time-valid answer;
invalidate-then-add rather than overwriting silently.
use `mempalace_kg_supersede` for single-valued replacements,
`mempalace_kg_invalidate` for facts that ended without replacement,
and `mempalace_kg_add` for independent/coexisting facts.

The canonical protocol, shared across all MemPalace integrations, lives
in `integrations/shared/recall-protocol.md`.
9 changes: 2 additions & 7 deletions .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "mempalace",
"version": "3.7.0",
"version": "3.8.0",
"description": "Give your AI a memory — mine projects and conversations into a searchable palace. 48 MCP tools, auto-save hooks, and guided setup.",
"author": {
"name": "milla-jovovich"
Expand All @@ -18,12 +18,7 @@
"search"
],
"skills": "./skills/",
"hooks": "./hooks.json",
"mcpServers": {
"mempalace": {
"command": "mempalace-mcp"
}
},
"mcpServers": "./.mcp.json",
"interface": {
"displayName": "MemPalace",
"shortDescription": "AI memory system for Codex",
Expand Down
18 changes: 12 additions & 6 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
# Every owner listed here must have write access to the repository —
# GitHub silently ignores a rule naming a user who does not, which
# leaves the matching paths with no reviewer at all.

# Default owners for everything
* @milla-jovovich @bensig @igorls
* @milla-jovovich @igorls

# Core library
mempalace/ @milla-jovovich @bensig
mempalace/ @milla-jovovich @igorls

# CI and workflows
.github/ @bensig
.github/ @igorls

# Plugins and integrations
.claude-plugin/ @bensig
.codex-plugin/ @bensig
integrations/ @bensig
.antigravity-plugin/ @igorls
.claude-plugin/ @igorls
.codex-plugin/ @igorls
.cursor-plugin/ @igorls
integrations/ @igorls
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
python-version: ["3.10", "3.11", "3.13"]
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v6
- uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
Expand All @@ -46,7 +46,7 @@ jobs:
runs-on: windows-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v6
- uses: actions/setup-python@v7
with:
python-version: "3.13"
cache: 'pip'
Expand All @@ -69,7 +69,7 @@ jobs:
runs-on: macos-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v6
- uses: actions/setup-python@v7
with:
python-version: "3.13"
cache: 'pip'
Expand All @@ -79,7 +79,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v6
- uses: actions/setup-python@v7
with:
python-version: "3.11"
cache: 'pip'
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ jobs:
# do not push.
- name: Log in to GHCR
if: github.event_name != 'pull_request'
uses: docker/login-action@v4
uses: docker/login-action@v4.5.2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
Expand Down Expand Up @@ -106,6 +106,8 @@ jobs:
# slow the PR check.
platforms: ${{ github.event_name != 'pull_request' && 'linux/amd64,linux/arm64' || 'linux/amd64' }}
push: ${{ github.event_name != 'pull_request' }}
provenance: mode=max
sbom: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ jobs:
fi
echo "Tag $TAG matches manifest version $py_version — OK."

- uses: actions/setup-python@v6
- uses: actions/setup-python@v7
with:
python-version: "3.13"

Expand Down
22 changes: 15 additions & 7 deletions .github/workflows/version-guard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ on:
- '.claude-plugin/marketplace.json'
- '.claude-plugin/plugin.json'
- '.codex-plugin/plugin.json'
- 'integrations/openclaw/SKILL.md'
- '.github/workflows/version-guard.yml'

jobs:
Expand All @@ -27,12 +28,16 @@ jobs:
marketplace_version=$(jq -r '.plugins[0].version' .claude-plugin/marketplace.json)
plugin_version=$(jq -r '.version' .claude-plugin/plugin.json)
codex_version=$(jq -r '.version' .codex-plugin/plugin.json)
openclaw_version=$(grep -E '^version:' integrations/openclaw/SKILL.md | cut -d' ' -f2)

echo "py_version=$py_version" >> "$GITHUB_OUTPUT"
echo "pyproject_version=$pyproject_version" >> "$GITHUB_OUTPUT"
echo "marketplace_version=$marketplace_version" >> "$GITHUB_OUTPUT"
echo "plugin_version=$plugin_version" >> "$GITHUB_OUTPUT"
echo "codex_version=$codex_version" >> "$GITHUB_OUTPUT"
{
echo "py_version=$py_version"
echo "pyproject_version=$pyproject_version"
echo "marketplace_version=$marketplace_version"
echo "plugin_version=$plugin_version"
echo "codex_version=$codex_version"
echo "openclaw_version=$openclaw_version"
} >> "$GITHUB_OUTPUT"

{
echo "## Detected versions"
Expand All @@ -44,6 +49,7 @@ jobs:
echo "| .claude-plugin/marketplace.json | \`$marketplace_version\` |"
echo "| .claude-plugin/plugin.json | \`$plugin_version\` |"
echo "| .codex-plugin/plugin.json | \`$codex_version\` |"
echo "| integrations/openclaw/SKILL.md | \`$openclaw_version\` |"
} >> "$GITHUB_STEP_SUMMARY"

- name: Verify all sources agree
Expand All @@ -53,6 +59,7 @@ jobs:
MARKETPLACE: ${{ steps.versions.outputs.marketplace_version }}
PLUGIN: ${{ steps.versions.outputs.plugin_version }}
CODEX: ${{ steps.versions.outputs.codex_version }}
OPENCLAW: ${{ steps.versions.outputs.openclaw_version }}
run: |
set -euo pipefail
fail=0
Expand All @@ -63,11 +70,12 @@ jobs:
fail=1
fi
}
# All five must agree with each other (use version.py as the reference, per CLAUDE.md)
# All six must agree with each other (use version.py as the reference, per CLAUDE.md)
check "pyproject.toml" "$PYPROJECT" "$PY"
check ".claude-plugin/marketplace.json" "$MARKETPLACE" "$PY"
check ".claude-plugin/plugin.json" "$PLUGIN" "$PY"
check ".codex-plugin/plugin.json" "$CODEX" "$PY"
check "integrations/openclaw/SKILL.md" "$OPENCLAW" "$PY"
exit $fail

- name: Verify tag matches manifest (tag pushes only)
Expand All @@ -94,7 +102,7 @@ jobs:

if [[ "$tag_version" != "$PY" ]]; then
echo "::error::tag $GITHUB_REF_NAME does not match manifest version $PY"
echo "Bump mempalace/version.py, pyproject.toml, and all plugin manifests before tagging a stable release."
echo "Bump mempalace/version.py, pyproject.toml, all plugin manifests, and the OpenClaw skill before tagging a stable release."
echo "For an internal/staging tag, use a semver pre-release suffix (e.g. v${PY}-rc1)."
exit 1
fi
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
dist/
build/
__pycache__/
.hypothesis/
*.pyc
.pytest_cache/
mempal.yaml
Expand Down
7 changes: 7 additions & 0 deletions .mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"mcpServers": {
"mempalace": {
"command": "mempalace-mcp"
}
}
}
Loading
Loading