Skip to content

fix(eve-extension): rebuild on eve 0.85.0 and migrate to the eve 0.84+ extension API - #82

Merged
CahidArda merged 2 commits into
mainfrom
fix/eve-extension-eve-0.85
Oct 28, 2026
Merged

CahidArda merged 2 commits into
mainfrom
fix/eve-extension-eve-0.85

Conversation

@CahidArda

Copy link
Copy Markdown
Collaborator

Problem

Published @upstash/agentkit-eve-extension@0.16.1 fails eve build on eve 0.84.0 and later:

Extension "@upstash/agentkit-eve-extension" uses an old epoch-based distribution manifest … Rebuild the extension with this eve release

eve 0.84.0 replaced per-capability contract epochs with a manifest that records the eve version the extension was built with, and changed the extension source API. #79 only bumped devDependencies, so it did not fix this.

Changes (packages/eve-extension)

  • SessionContext is no longer exported from eve/tools. Added SessionRef = Pick<SessionFrame, "session"> (extension/lib/session.ts), used for the optional userId function and resolveUserId.
  • Dynamic tools (search, search_aggregate, search_count, search_chat_history, read_chat_history) use defineDynamic(() => tool | null) instead of defineDynamic({ events: { "session.started" } }).
  • Chat-history hook: message.received becomes delivery.consumed (text parts of event.data.parts); message.completed becomes content.completed, filtered to text parts with phase: "reply". Behaviour change: one stored assistant message per reply text part, and narration between tool calls is not stored.
  • Rebuilt on eve 0.85.0. Manifest is now { formatVersion: 3, builtWithEve: "0.85.0", contractMajor: 0 }.
  • Peer floor >=0.83.0 -> >=0.85.0. Verified by packing the dist into fresh consumers: eve 0.83.3 fails ("no valid compatibility manifest"), 0.84.0 and 0.84.1 fail ("was built with eve 0.85.0. Upgrade eve to 0.85.0 or later"), 0.85.0 eve build is clean with the examples/eve-extension-demo agent mounted.
  • examples/eve-extension-demo: eve ^0.85.0; its eval uses turn.reply (renamed from turn.message in the eve 0.84+ eval API).
  • Minor changeset for @upstash/agentkit-eve-extension; README, AGENTS.md, CLAUDE.md updated.

packages/eve and examples/eve-demo stay on eve 0.82.0 (they still need their own source migration, including ./sandbox).

Verification

  • Pass: pnpm lint, pnpm typecheck, node scripts/sync-version.mjs --check, pnpm build, all example builds, eve-demo mocked eval (10 gates).
  • eve-extension-demo mocked eval: 3/4 gates. The failing calledTool(agentkit__search_count) gate fails only because the throwaway Redis allows one search index ("Exceeded max index count of 1"); the tool mounts and executes. Needs a re-run on a Redis with more search indexes.
  • Not verified live: the chat-history hook and tools against Redis (same index cap; I ran the demo with chatHistory off). It is typechecked and built only. Please try the demo with chatHistory: true before releasing.
  • pnpm test and the TanStack e2e were not re-run for this PR (no change to those packages).

🤖 Generated with Claude Code

https://claude.ai/code/session_01CMK4es9MSvTWcpjytYN8Kz

…+ extension API

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01CMK4es9MSvTWcpjytYN8Kz
Copilot AI balanced review requested due to automatic review settings October 28, 2026 09:59

Copilot AI 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.

🟡 Changes recommended

The Eve upgrade leaves an incompatible installed Connect peer dependency in the demo, causing strict peer-dependency installs to fail.

1 open issue
1 file not reviewed
  • pnpm-lock.yaml: Generated file
What changed in this PR

Migrates the Eve extension to the 0.84+ APIs and rebuilds it with Eve 0.85.0, addressing the published extension’s manifest incompatibility left unresolved by #79. The separate Eve adapter and its demo remain on 0.82.0.

Changes:

  • Updates dynamic tools and session-context typing to the new extension API.
  • Migrates chat-history capture to delivery and content events, storing reply-phase assistant text.
  • Raises the Eve peer floor to 0.85.0 and updates the demo, documentation, and release changeset.
File Description
pnpm-lock.yaml Resolves Eve 0.85.0 and its peer dependencies.
packages/​eve-extension/​README.md Updates compatibility requirements and dynamic-tool timing.
packages/​eve-extension/​package.json Raises Eve development dependency and peer floor.
packages/​eve-extension/​extension/​tools/​search.ts Migrates the search resolver to callback-form defineDynamic.
packages/​eve-extension/​extension/​tools/​search_count.ts Migrates the count resolver.
packages/​eve-extension/​extension/​tools/​search_chat_history.ts Migrates the history-search resolver.
packages/​eve-extension/​extension/​tools/​search_aggregate.ts Migrates the aggregation resolver.
packages/​eve-extension/​extension/​tools/​read_chat_history.ts Migrates the transcript-read resolver.
packages/​eve-extension/​extension/​lib/​session.ts Introduces the shared SessionRef type.
packages/​eve-extension/​extension/​lib/​runtime.ts Uses SessionRef for identity resolution and capture.
packages/​eve-extension/​extension/​hooks/​chat_history.ts Captures user deliveries and assistant reply text.
packages/​eve-extension/​extension/​extension.ts Updates the configured user-ID callback type.
packages/​eve-extension/​AGENTS.md Documents the new Eve compatibility floor.
examples/​eve-extension-demo/​package.json Moves the extension demo to Eve 0.85.0.
examples/​eve-extension-demo/​evals/​agentkit-smoke.eval.ts Uses the renamed turn.reply property.
CLAUDE.md Records migration and compatibility details.
.changeset/​eve-extension-eve-085.md Adds a minor-release entry for the migration.

Review effort: Balanced

…85 peer

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01CMK4es9MSvTWcpjytYN8Kz
Copilot AI balanced review requested due to automatic review settings October 28, 2026 10:09

Copilot AI 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.

🔵 Needs a closer look

Verification is limited to typechecking and builds, leaving migrated chat-history capture, retrieval, and tenant isolation untested with chatHistory enabled against live Redis.

No open issues 🎉

1 resolved since last review
1 file not reviewed
  • pnpm-lock.yaml: Generated file

Review effort: Balanced

@CahidArda
CahidArda merged commit 8ee035f into main Oct 28, 2026
3 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.

2 participants