Skip to content

fix(install): pin Python 3.12 in every uvx line; demo gif fits one screen - #76

Open
tonydzi wants to merge 2 commits into
mainfrom
docs/demo-gif-payoff-visible
Open

tonydzi wants to merge 2 commits into
mainfrom
docs/demo-gif-payoff-visible

Conversation

@tonydzi

@tonydzi tonydzi commented Nov 2, 2026 •

Copy link
Copy Markdown
Owner

Two defects in the first screen merged in #66, both mine.

1. The install lines fail on a newer default Python (Intel Mac). Torch stopped at 2.2.2 on x86_64 macOS, with no wheels for Python 3.13+. An unpinned uvx resolves on uv's default Python, so it depends on what the machine has. #66 verified these lines on 1 Nov; on 2 Nov the same line failed here, after Python 3.14 was installed on this machine.

uvx --python X --with 'sqlite-graph-memory[embeddings]' sqlite-graph-memory on this Intel Mac result
3.14 No solution found, 0.1 s
3.13 No solution found, 0.3 s
3.12 installs, answers initialize

Every uvx line in README.md, examples/README.md, llms.txt and server.json now pins --python 3.12. The README also says pip install on an Intel Mac needs 3.12 or older; that route still fails with the resolver error on 3.13+. The server.json change reaches the MCP Registry only with the next release, so registry installs stay unpinned until then.

2. The gif hid its own result. It was 829 px tall, with the one line that matters at the bottom, below the fold. Now 515 px: top 5 of each list, as in the README's output block, with tool-lanternfish <== +graph in green. Same real run and same numbers. The trim is a display filter documented in docs/demo.sh. The result appears at 12.3 s of 26.3 s.

Guards, so this does not come back:

  • tests/test_uvx_python_pin.py checks the pin value. On the previous main: 3 failed. With the docs changed to --python 3.13: 2 failed. Here: pytest -q 212 passed.
  • The installable CI job resolves .[embeddings] on Python 3.12 for five platforms with uv pip compile. All five resolve locally; Intel Mac on 3.14 fails it with No solution found.
  • docs/demo.sh without sgm-index on PATH now exits 1. It used to exit 0 and write a blank gif, which happened to me while re-recording. It also sets TERM itself.

What was actually run:

  • On this Intel Mac: the fixed index line (indexed 204 chunks from 202 files) and the fixed server line (answers initialize).
  • claude mcp add with the fixed line, then claude mcp get: args stored as written. Status stays "pending approval", so the server was not started from inside Claude Code.
  • Cursor, VS Code and Codex blocks: parsed as JSON and TOML only.
  • Apple Silicon, Linux and Windows: dependency resolution only, nothing installed or run.

Anton Dziatkovskii

🤖 Generated with Claude Code


Note

Low Risk
Docs, CI, and demo tooling only; no changes to recall, MCP, or package runtime code.

Overview
Fixes uvx installs breaking when uv defaults to Python 3.13+ on Intel Macs (torch has no wheels there). Every documented uvx invocation and MCP server.json runtime args now include --python 3.12, with README notes that pip install on those machines still needs 3.12 or older.

Regression guards: new tests/test_uvx_python_pin.py scans README, examples, llms.txt, JSON/TOML snippets, and server.json; the installable CI job runs uv pip compile for .[embeddings] on five platforms at Python 3.12.

README demo: docs/demo.sh trims sgm-ask --ab output to the top 5 per list (matching the README block), highlights the graph hit in green, uses a smaller asciinema grid, and fails fast if sgm-index/sgm-ask are missing. CHANGELOG records both fixes under Unreleased.

Reviewed by Cursor Bugbot for commit 13f4fd0. Bugbot is set up for automated code reviews on this repo. Configure here.

tonydzi and others added 2 commits November 2, 2026 11:57
…reen

Two things found by checking the merged first screen again:

1. The install lines broke on MacPro192 the day after they were verified. uv moved its
   default to Python 3.14; torch stopped at 2.2.2 on Intel Macs, with no wheels for 3.13+,
   so `uvx --with 'sqlite-graph-memory[embeddings]' ...` fails with "No solution found".
   Measured: 3.14 and 3.13 fail in under a second, 3.12 installs and answers initialize.
   README, examples, llms.txt and server.json now pin `--python 3.12`.
   tests/test_uvx_python_pin.py fails on the previous main (3 failed) and passes here.

2. The gif was 829 px tall, and the only line that matters sat at the bottom of it, past
   the fold. Now 515 px with the top 5 of each list and the graph hit in green. Numbers
   unchanged, same real run; the trim is documented in docs/demo.sh.

Assisted-by: Claude Code/claude-opus-5-5
Machine: MacPro192
Account: tonydzi
Operator: Anton
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ing an empty gif

Review of the previous commit found three holes:
- the test only looked for the word --python, so --python 3.13 passed. It now checks 3.12.
- nothing proved the pinned line still resolves. CI now resolves [embeddings] on Python 3.12
  for five platforms with uv pip compile. Intel Mac on 3.14 fails this check, as it should.
- demo.sh without sgm-index exited 0 and wrote a blank gif. It now exits 1.

Assisted-by: Claude Code/claude-opus-5-5
Machine: MacPro192
Account: tonydzi
Operator: Anton
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@tonydzi
tonydzi force-pushed the docs/demo-gif-payoff-visible branch from ff4e6d1 to 13f4fd0 Compare November 2, 2026 12:00

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 13f4fd0. Configure here.

Comment thread docs/demo.sh
# skips that silence. The query is the one from "Three commands" in the README.
set -e
set -eo pipefail
command -v sgm-index sgm-ask > /dev/null || { echo "sgm-index and sgm-ask must be on PATH" >&2; exit 1; }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PATH guard checks only one command

Low Severity

The new PATH guard passes two names to command -v, which takes a single command name; extra operands are ignored. Only sgm-index is verified, so a missing sgm-ask still gets past the check. Combined with eval discarding stderr, that can record a gif that indexes successfully and then omits the query result the trim was meant to keep on screen.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 13f4fd0. Configure here.

This branch has not been deployed

No deployments
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