docs: add Python 3.13 and 3.14 classifiers#302
docs: add Python 3.13 and 3.14 classifiers#302Milofax wants to merge 1 commit intoMemPalace:developfrom
Conversation
PR Review: fix: widen chromadb constraint to support Python 3.14Executive Summary
Affected Areas: Dependency management ( Business Impact: Unblocks installation on Python 3.14+. Without this fix, Flow Changes: None — no code changes, only dependency metadata. Ratings
PR Health
Chromadb API Compatibility AnalysisThe codebase uses chromadb exclusively through
Conclusion: All five API calls are core stable operations. No breaking change risk for the version window Medium Priority Issues🎨 #1: README lower bound was stale — now fixed but inconsistent with pyproject.toml historyLocation: The README previously stated No action needed — this is a positive cleanup. Low Priority Issues🏗️ #2: Consider whether
|
Follow up on PR MemPalace#302 by declaring the Python versions the project now supports after widening the chromadb constraint for Python 3.14. This is metadata only; test suite remains green on Python 3.14.2.
- pyproject.toml: widen chromadb to <2.0 for Python 3.14 compat (MemPalace#302) - config.py + miner/convo_miner/mcp_server: add hnsw:space=cosine so similarity = 1 - distance stays in [0,1] instead of negative L2 (MemPalace#304) - searcher.py + layers.py: guard against ChromaDB 1.x empty-outer query results (IndexError on fresh collections) (MemPalace#305) - mcp_server.py: redirect stdout→stderr at import to protect JSON-RPC wire from chromadb/posthog chatter (MemPalace#306) - mcp_server.py: replace 10k-limited col.get with paginating _iter_all_metadatas helper; stop swallowing errors silently (MemPalace#307) - mcp_server.py: drop undocumented wait_for_previous arg injected by Gemini MCP clients (MemPalace#322) - searcher.py + hybrid_searcher.py + mcp_server.py: add min_similarity threshold filter so callers get a clean "no results" signal (MemPalace#350) - entity_detector.py: add CODE_KEYWORDS blocklist (~80 terms) to stop Rust types / React / framework names being detected as entities (MemPalace#349) Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
web3guru888
left a comment
There was a problem hiding this comment.
I appreciate the intent — Python 3.14 support is important for forward-compat — but the constraint change from <0.7 to <2.0 is quite wide and may cause issues.
The problem with <2.0: ChromaDB has had breaking API changes between minor versions (the 0.4→0.5 migration broke collection APIs, and 0.5→0.6 changed embedding function defaults). Opening the upper bound to <2.0 means users could install a future ChromaDB version that breaks MemPalace's col.get(), col.query(), or col.add() calls without any error at install time. The breakage would surface at runtime as confusing exceptions.
What we do: We pin chromadb>=0.6.0,<0.7.0 in our integration. This gives us the latest patches while protecting against API breaks. We've been burned by the version drift before — it's a major community pain point (see #426, #445, #457, #458).
Suggestion: A safer approach might be chromadb>=0.5.0,<0.8 or even <1.0 — still gives plenty of room for 3.14 compat without opening up to a hypothetical 1.x that could have major API changes. Alternatively, the Python 3.14 compat issue might be better solved by testing against chromadb's latest 0.6.x build on 3.14 and updating the classifiers separately from the version constraint.
Also: the README says chromadb>=0.4.0 but pyproject.toml had >=0.5.0 — this PR updates the README to >=0.5.0 which is the correct alignment, so that part is good.
🔭 Reviewed as part of the MemPalace-AGI integration project — autonomous research with perfect memory. Community interaction updates are posted regularly on the dashboard.
bensig
left a comment
There was a problem hiding this comment.
Code review + security audit clean.
|
hey @Milofax — this conflicts with develop now. could you pls rebase? the fix itself looks good, just needs a fresh merge. thanks! |
Follow up on PR MemPalace#302 by declaring the Python versions the project now supports after widening the chromadb constraint for Python 3.14. This is metadata only; test suite remains green on Python 3.14.2.
801db99 to
1891b1b
Compare
|
rebased onto develop. the chromadb commit dropped since develop already widened the constraint further (removed upper bound entirely). this PR now only adds the 3.13/3.14 classifiers — retitled accordingly. let me know if you'd rather close this and have the classifier bump elsewhere. |
Summary
Widens
chromadbdependency from>=0.5.0,<0.7to>=0.5.0,<2.0inpyproject.toml(and syncsREADME.md), fixing the crash on Python 3.14.Problem
chromadb <0.7 uses
pydantic.v1.BaseSettingswhich fails on Python 3.14+:Python 3.14 dropped backward-compat for pydantic-v1's type inference, making any chromadb version that imports
from pydantic.v1 import BaseSettingsunusable.Fix
chromadb 1.x removed the pydantic-v1 dependency entirely. Widening the upper bound to
<2.0lets pip resolve to chromadb 1.5.7+ on Python 3.14 while keeping 0.5.x/0.6.x valid for older Python installs.One-line change in
pyproject.toml, plus README alignment.Verification
chromadb.PersistentClientsmoke test on 3.14pytest tests/ -x(117 tests) with chromadb 1.5.7 on Python 3.14.2Refs: #100