Repository navigation
Release 1.2.0: aito-mcp, upload_csv, aito start on engine v2.11.2 (multi-arch) - #85
Merged
Merged
Conversation
…s yes) - Version 1.2.0; changelog: upload_csv, the first-hour fixes, and the engine pin v2.11.2 (multi-arch: native on Apple Silicon and arm64 Linux). - scripts/pin-engine.py: resolves a ghcr tag to its index digest, refuses a single-arch image unless --allow-single-arch, rewrites PINNED_IMAGE; --check-multiarch [REF] for CI; --show. - tests/sdk/test_release_pin.py: the pin must be the engine the newest changelog section names. RED on purpose until v2.11.2 is published and pinned: this branch cannot be released claiming v2.11.2 while aito start pulls v2.11.1. - local-server.yml: a workflow_dispatch 'image' input tests a candidate engine before pinning; the native arm64 row runs the full path when the image is multi-arch and expects the clean refusal otherwise. To release, once v2.11.2 is on ghcr: 1. python scripts/pin-engine.py v2.11.2 (gate test turns green) 2. dispatch 'aito start across platforms' with image=ghcr.io/aitohq/aito:v2.11.2 3. push, PR, CI green, merge; ./do release on Antti's yes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGxAujqUXtXMNcLfpqm96r
…riant; smoke takes 401
- PINNED_IMAGE -> ghcr.io/aitohq/aito:v2.11.2@sha256:4b3d5344 (linux/amd64 + linux/arm64),
via scripts/pin-engine.py. The release gate (test_release_pin) is green.
- aito start / upgrade: a local copy of the pinned image built for another CPU no longer
shadows the multi-arch image. Found running the smoke on this branch: the machine held
an arm64 copy of v2.11.2 (pulled with --platform elsewhere), Docker ran it on amd64 and
it died with 'exec format error'. Docker's classic store refuses to re-pull a digest it
already maps ("cannot overwrite digest"), so _ensure_image removes the stale reference
and pulls --platform linux/<host>; a single-arch image is pulled back and runs under
emulation as before. Fail-first: TestImageForTheHostsCpu (4).
- scripts/ci/local_server_smoke.py: a refused key is 401 from engine v2.11.2 (403 up to
v2.11.1); the rotate check accepts both and names the code it saw.
The smoke now passes end to end on v2.11.2, natively on amd64, in 7.1 s.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGxAujqUXtXMNcLfpqm96r
…d the plugin https://aito.ai/docs/articles/when-to-use-aito-and-when-not/ (CRO, 5.10; prod goes live before this release). In the server instructions (WHEN_TO_USE_URL), the add-predictive-feature skill and the plugin README; a test keeps it in both. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGxAujqUXtXMNcLfpqm96r
… section Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGxAujqUXtXMNcLfpqm96r
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.
Release 1.2.0. Antti's go, 7.10. After merge:
./do releaseon master, held until the two linked docs pages are live on aito.ai.In it (see
docs/source/changelog.rst, 1.2.0)aito-mcp: the MCP server and the Claude Code plugin (aito-mcp: an MCP server that says when Aito fits, and a Claude Code plugin #84). It now links the "When to use Aito, and when not" page and the MCP setup page.Client.upload_csv, plus the first-hour fixes toaito start(CI: run the instance-resetting tests on master only, one pipeline at a time #80–Client.upload_csv: a CSV into a v2 collection in one call #83).sha256:4b3d5344…, linux/amd64 + linux/arm64). It runs natively on Apple Silicon and arm64 Linux;aito upgrademoves an existing server to it.Fixes found while preparing it
aito start. An arm64 copy of v2.11.2, pulled with--platform, shadowed the multi-arch image on an amd64 host and died with "exec format error". Docker's classic store refuses to re-pull a digest it already maps, so_ensure_imageremoves the stale reference and pulls the host's variant. A single-arch image still falls back to emulation. Fail-first:TestImageForTheHostsCpu.Verified
test_release_pin(the pin matches the changelog's engine) is green.aito startsmoke (scripts/ci/local_server_smoke.py) passes end to end on v2.11.2, natively on amd64: start, write and predict, rotate keys, status, stop, in 7.1 s.image=ghcr.io/aitohq/aito:v2.11.2.Not in it
aito-mcpcompanion PyPI package and the MCP registry entry: separate step, separate yes.🤖 Generated with Claude Code
https://claude.ai/code/session_01AGxAujqUXtXMNcLfpqm96r