fix(ci): resolve Python SDK and dashboard build failures#9
Closed
fix(ci): resolve Python SDK and dashboard build failures#9
Conversation
Co-authored-by: russellbrenner <5236354+russellbrenner@users.noreply.github.com>
…Row compat, use local Geist fonts - Add missing python-dotenv dependency to Python SDK pyproject.toml - Fix langchain connector missing fallback imports when langchain_core not installed - Fix compute_tag_match_score to handle sqlite3.Row objects (no .get() method) - Switch dashboard from next/font/google to local geist package for offline/Docker builds Co-authored-by: russellbrenner <5236354+russellbrenner@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Merge changes from main into repository safely
fix(ci): resolve Python SDK and dashboard build failures
Feb 25, 2026
russellbrenner
approved these changes
Feb 25, 2026
russellbrenner
pushed a commit
that referenced
this pull request
Feb 26, 2026
Upstream changes (9 commits, 6 unique): - Add Siray embedding provider (JS + Python SDKs) - Improve Docker reliability (bookworm-slim base, inline Node healthcheck) - Add dashboard service profile gating (docker compose --profile ui) - Fix SQLite path in .env.example for Docker volume alignment - Add Doppler compose wrapper and dashboard build-time env vars - Fix dashboard to load memories without requiring NEXT_PUBLIC_API_KEY Fork PR integration (#8, #9): - Add python-dotenv to Python SDK dependencies - Fix sqlite3.Row compat in Python hsg.py compute_tag_match_score - Add langchain connector fallback imports for missing deps - Switch dashboard fonts from Google Fonts to local geist package All omnibus tests pass (TS 3/3, Python 3/3). Dashboard builds clean. https://claude.ai/code/session_01AvLytv3nsAZWqiDqxEKBfh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📋 Description
Fixes four build/test failures preventing CI from passing on main.
python-dotenvdep:config.pyimportsfrom dotenv import load_dotenvbut the package wasn't declared inpyproject.tomlexcept ImportErrorblock only stubbedBaseChatMessageHistoryandBaseRetriever, leavingBaseMessage,HumanMessage,AIMessage,Document,CallbackManagerForRetrieverRunundefined →NameErrorat importsqlite3.Rowhas no.get():compute_tag_match_scorecalledmem.get("tags")on Row objects, failing all three omnibus tests withAttributeErrornext/font/googlefetches fonts at build time; replaced with localgeistnpm package viageist/font/sansandgeist/font/mono🔄 Type of Change
🧪 Testing
Verified:
npm run buildpasses for bothpackages/openmemory-jsanddashboardnpx tsx tests/test_omnibus.ts— all phases passpytest tests/test_omnibus.py -v— 3/3 pass (previously 0/3)📱 Screenshots (if applicable)
N/A
🔍 Code Review Checklist
🚀 Deployment Notes
Dashboard now uses the
geistnpm package for fonts instead of runtime Google Fonts fetching. Font rendering is identical — same Geist typeface, just bundled locally.📋 Additional Context
The
sqlite3.Rowfix uses bracket access withtry/except (KeyError, IndexError)rather than converting rows to dicts, keeping it consistent with the existing Row-based access pattern throughout the codebase.Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
fonts.googleapis.com/home/REDACTED/work/_temp/ghcca-node/node/bin/node node /home/REDACTED/work/OpenMemory/OpenMemory/dashboard/node_modules/.bin/next build(dns block)If you need me to access, download, or install something from one of these locations, you can either:
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.