Skip to content

Prepare Pixelmemory 0.2.0 for Pixeltable 0.7.17 - #6

Merged
pierrebrunelle merged 1 commit into
mainfrom
codex/pixelmemory-latest-pixeltable
Oct 16, 2026
Merged

pierrebrunelle merged 1 commit into
mainfrom
codex/pixelmemory-latest-pixeltable

Conversation

@pierrebrunelle

@pierrebrunelle pierrebrunelle commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

Pixelmemory's published 0.1.0 is behind the current Pixeltable API. Main already declares an unreleased 0.2.0, but its tests mostly checked multimodal construction. This prepares that release for Pixeltable 0.7.17 and fixes failures found by three independent reviews of the core API, multimodal execution, and packaging/examples.

  • Require Pixeltable >=0.7.17,<0.8 and sentence-transformers >=5.4, refresh the lockfile, and provide OpenAI, Anthropic and sentence-splitting extras with installation instructions.
  • Index nullable contexts and multiple embedded columns correctly. Scope default index names, reuse legacy indexes without re-embedding, reject explicit collisions, and keep repeated indexing idempotent.
  • Default optional Entry fields to None, reject incompatible reopened schemas and generated-column collisions before catalog writes, and exclude missing/failed embeddings before search limits.
  • Skip provider calls for absent images and allow nullable caption results while preserving real Pixeltable provider UDFs and computed columns.
  • Repair conversation persistence, FastAPI create/search/list/delete behavior, and example embedding/result handling. Migrate the MCP example to MCPServer 2.3 and native Streamable HTTP; update task rows atomically.
  • Test locked dependencies on Python 3.11–3.13 plus a separate unpinned Pixeltable canary. Verify the actual installed wheel with isolated imports, insertion/reopen, dependency checks and the complete suite before publishing.

The runtime Context API remains a library over Pixeltable's catalog APIs. Fixed application schemas should use TableModel and FastAPIRouter, as documented in the README. Reopening a memory preserves existing model/splitter/computed-column definitions; changing them requires explicit migration.

Validation at ec5fa8e (Python 3.12, macOS arm64):

  • Locked development environment: 92 passed on Pixeltable 0.7.17.
  • Built wheel installed into a fresh environment; import location verified under site-packages, Python run with -I from outside the checkout: 92 passed. Runtime dependencies resolved fresh rather than using the source environment.
  • Real local sentence-transformers ranking, real Pixeltable storage/indexing/queries, TXT/HTML/PDF splitting, audio/video iterators, nullable inputs, provider-error rollback, delete propagation and reopening (including another process).
  • FastAPI requests, three-turn conversation histories and an MCP HTTP initialize/tools lifecycle are covered.
  • Ruff, lockfile consistency, dependency checks, workflow YAML/shell syntax, wheel/sdist build and twine metadata checks pass.

GitHub verification at ec5fa8e:

  • Test workflow: Python 3.11, 3.12 and 3.13 with locked dependencies, plus the Python 3.12 latest-Pixeltable canary, all pass.
  • Release dry run: build, artifact metadata, isolated wheel installation, insertion/reopen and the complete installed-wheel suite pass. The publish job was skipped.

Coverage boundaries: provider network clients are simulated, so live OpenAI/Anthropic availability and authentication are unverified. Full CrewAI/model-provider execution, external model downloads, and PyPI Trusted Publishing configuration are not established by these tests. No release tag or PyPI upload is part of this PR.

@pierrebrunelle
pierrebrunelle marked this pull request as ready for review October 16, 2026 03:56
@pierrebrunelle
pierrebrunelle merged commit 65c4906 into main Oct 16, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant