Skip to content

fix(prime-agent): adopt 0.7.3 and explain a rejected model selection - #48

Merged
rynfar merged 1 commit into
pylonfrom
fix/prime-agent-0-7-3-adoption
Aug 18, 2026
Merged

fix(prime-agent): adopt 0.7.3 and explain a rejected model selection#48
rynfar merged 1 commit into
pylonfrom
fix/prime-agent-0-7-3-adoption

Conversation

@rynfar

@rynfar rynfar commented Aug 18, 2026

Copy link
Copy Markdown
Collaborator

Problem

Prime Agent shipped 0.7.3 and we were documented and verified against 0.7.2. Two behavior changes reach users:

  • 0.7.3 regenerated its model catalog and dropped model ids (cerebras/zai-glm-4.7, claude-opus-4, claude-opus-4-1, several claude-3*). A thread pinned to a removed model fails its next turn with The daemon model switch failed., which does not tell the user what happened or what to do.
  • 0.7.3 moved the supervisor ownership registry from $TMPDIR to ~/.prime/supervisor-owners (macOS cleanup was deleting long-running supervisors' authority records). Pylon now writes ownership records there even when a provider instance sets its own agent home, which makes the parity ledger's claim that the real-daemon test "never writes to the source Prime home" untrue.

How it was fixed

No adapter change was needed for the bump. I diffed the published 0.7.2 and 0.7.3 tarballs: daemon-agent-connection.d.ts, daemon-protocol.d.ts, and index.d.ts are byte-identical, protocol 7 / schema 16 / schema id are unchanged, and context-tree.js and daemon-socket.js — the code behind our two blocked parity entries (getContextTree, Windows daemon mode) — are unchanged too, so every recorded deferral still holds. 0.7.3's rewritten RLM spawn ledger is private to daemon mode, and its new authenticated host-request contracts belong to the Python kernel surface, not the extension API our approval gate uses. The one public removal in the release, listSavedSessionSiblings/siblings(), is unused here.

Model rejection now names the likely cause and the action, without copying Prime's native error text across the adapter boundary. Covered by a focused test that also asserts the native path in the rejection does not leak.

Ownership registry: keep the upstream behavior, document it. It is safe for us because ownerConflicts keys on socket path and worker descriptor directory — Pylon derives a unique socket per (state directory, provider instance) and the descriptor directory hashes that socket, so a Pylon daemon never claims ownership over a user's interactive prime-agent daemon even when both share the default ~/.prime/agent home. Prime exposes an internal env override for the location; we do not use it, because sanitizePrimeAgentDaemonEnvironment strips every PRIME_AGENT_INTERNAL_* variable by design and that policy is explicitly tested, including a forward-compatibility case. The ledger's test-isolation claim is corrected rather than papered over.

Verification

  • vp test run apps/server/src/provider/prime/ — 243 passed, 1 skipped (was 242 + 1; the new test is the delta)
  • Opt-in real-daemon test against the installed 0.7.3 binary — passed (full native turn, cancellation, catalog/model selection, manager restart, resume, socket cleanup)
  • vp run -F t3 typecheck — 0 errors, nothing reported in the touched files
  • vp lint on both touched source files — clean

No UI changes, so no before/after images.

Model: Claude Opus 5 in Pylon (Claude Code harness)


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith with what you need. Autofix is disabled.

Prime Agent 0.7.3 needs no adapter change: the public DaemonAgentConnection
and daemon protocol type surfaces are byte-identical to 0.7.2, protocol 7 and
schema 16 are unchanged, and the context-tree and daemon-socket code behind
our two blocked parity entries is unchanged, so every recorded deferral still
holds. Verified with the Prime suite and the opt-in real-daemon test against
the installed 0.7.3 binary.

Two things did move. 0.7.3 regenerated its model catalog and dropped ids such
as cerebras/zai-glm-4.7, so a thread pinned to a removed model failed its next
turn with "The daemon model switch failed", which does not tell the user what
to do. Name the likely cause and the fix instead, without copying Prime's
native error text across the adapter boundary.

0.7.3 also moved the supervisor ownership registry from $TMPDIR to
~/.prime/supervisor-owners, so Pylon writes ownership records there even when
a provider instance sets its own agent home. That is safe for us because
ownership conflicts key on socket path and worker descriptor directory, both
unique per provider instance, and we deliberately strip every
PRIME_AGENT_INTERNAL_* variable rather than use Prime's internal override.
Record the behavior and correct the parity ledger's claim that the real-daemon
test never writes to the source Prime home.

Model: Claude Opus 5 in Pylon (Claude Code harness)
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M labels Aug 18, 2026
@github-actions

Copy link
Copy Markdown

Thread transfer impact

⚠️ The latest CI run did not produce a thread transfer result for 64e1710.

This comment will update automatically after the next completed run.

@rynfar
rynfar merged commit b7470ce into pylon Aug 18, 2026
11 checks passed
@rynfar
rynfar deleted the fix/prime-agent-0-7-3-adoption branch August 18, 2026 20:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant