Skip to content

Bind registry releases to exact agent manifests - #535

Merged
pawellisowski merged 3 commits into
mainfrom
fix/534-exact-agent-version
Sep 14, 2026
Merged

pawellisowski merged 3 commits into
mainfrom
fix/534-exact-agent-version

Conversation

@pawellisowski

Copy link
Copy Markdown
Contributor

aware agent install viewer-3d@0.1.0 could report success while installing a payload whose manifest declared 0.1.2. Registry entries now bind each release key to an exact manifest agent and manifest version, and install/update fail before changing installed state when the downloaded payload disagrees.

The checked-in registry is backfilled with those bindings. viewer-3d@0.1.0 now points to immutable historical bytes from commit b6991920e952a0bc293308faa9090dfd2d9b570e, whose manifest declares viewer-3d@0.1.0. Publishing, reindexing, and provenance verification enforce the same contract, with plain-English diagnostics for invalid metadata and mismatched payloads.

Validation:

  • cargo fmt --check
  • cargo clippy --locked --all-targets -- -D warnings
  • cargo test --locked (1386 unit tests passed, 1 ignored; all integration suites passed)
  • cargo run --locked -- agent reindex --check
  • Real CLI install of viewer-3d@0.1.0 produced manifest and receipt version 0.1.0
  • Deliberately mismatched registry binding failed with exit 3 and created no installed directory
  • Independent Codex diff review: no actionable regression

Refs #534

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 14, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-14T12:42:01.679136Z 5912cdb Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@pawellisowski

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Chef's kiss.

Reviewed commit: 5912cdb42c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@pawellisowski
pawellisowski merged commit 9011a8e into main Sep 14, 2026
14 checks passed
@pawellisowski
pawellisowski deleted the fix/534-exact-agent-version branch September 14, 2026 12:42
pawellisowski added a commit that referenced this pull request Sep 14, 2026
…manifest they carry

Two user-facing changes since v0.137.2, in two different shipped components.

`aware agent install` / `update` now enforce a release's declared identity.
Every installable registry entry carries `manifest-agent` and `manifest-version`,
binding the registry key to the identity the extracted `manifest.yaml` must
declare. Both are required under every trust mode — official, cached and custom
registries alike — validated before download (portable filename-safe agent id,
strict SemVer version) and compared again after extraction, before any installed
directory is created, removed or replaced. Bundle install and `update --all`
inherit the checks because they call the same single-agent paths. An official
bundle is `verified` only when its fresh registry binding, its receipt and the
installed manifest agree, so digest equality alone can no longer credit an
attested tree to a different semantic release (#535, refs #534).

Releasing this now rather than waiting, because main is half-shipped: the
registry is served from `refs/heads/main`, so `registry-index.json` already
carries the new bindings for every user, while the binary that enforces them
reaches nobody without a tag.

The connection-reader bridge stops refusing valid models at two ceilings its own
contract never declared (#532, refs #517). `MAX_CANONICAL_WORK_BYTES` was a bare
1 GiB module constant — invisible, unoverridable, and a silent override of the
count limits `MODEL_LIMITS` does declare, making the published `maxVertices`
default of 5,000,000 unreachable at 21% of it. It is now `maxCanonicalWorkBytes`:
declared, overridable, fail-closed, and its refusal names the budget actually
applied rather than a literal "1 GiB". `maxGlbJsonBytes` had default == hard at
16 MiB, so it was unraisable and rejected a 23,576,276-byte JSON chunk inside a
GLB that `maxInputGlbBytes` admits; input and output documents now carry separate
budgets, with the output bound keeping its previous strength. This ships only
through a GitHub Release, which builds the Node SEA and attaches
`aware-connection-reader-<version>-win-x64.zip`.

Minor rather than patch: two components, a new required registry field, and
install/update refusing releases they previously accepted.

The delta's other two commits change no shipped behavior — #531 is an
internal refactor with no caller behavior change, #529 is test-only.

Gates on this tree: cargo fmt, cargo clippy -D warnings, 1,850 Rust tests across
60 suites, and the connection-reader suite (241 passed, 0 failed) all green;
CI and Stats green on 9011a8e.

Claude-Session: https://claude.ai/code/session_01Ah9N5qfKDMEykUBE7Jy8kZ
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