Skip to content

Add Link wallets and migrate to Eve 0.69 - #148

Merged
fmhall merged 4 commits into
mainfrom
mason/link-extension
Oct 2, 2026
Merged

fmhall merged 4 commits into
mainfrom
mason/link-extension

Conversation

@fmhall

@fmhall fmhall commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

OpenInstinct users can connect their own Link wallet and use Stripe's official Eve tools and skills. The extension uses the existing Better Auth phone account for wallet ownership, with interactive OAuth that resumes the original agent request after connection. This branch also migrates the application from Eve 0.67.2 to 0.69.0.

The wallet page supports connection and revocation. Grants are encrypted, refresh and disconnection share an account lock, and a database constraint permits one Link wallet per user. Reconnecting the same wallet updates its grant; changing wallets requires disconnecting first. Stripe's bundled tools, skills, and approval policy remain unchanged. Scheduled workers and result delivery cannot acquire wallet access.

Eve migration

  • Browser work uses a resumable serve workflow. Calls continue by taskId, retain the child session, and support cancelling current work before assigning another task.
  • Chat traces, reply routing, benchmarks, and runtime tests consume agent.started, task.started, and task.settled events. Scheduled tasks finish within the open turn instead of waiting for a later background-result turn.
  • Native no_reply replaces the removed empty-delivery marker for silent scheduled reports.
  • Remove the authored task_cancel declaration and its framework patch; Eve now owns cancellation. Retain the independently tested native Linq reply patch.
  • Eve 0.69 rejects session handoffs across this upgrade boundary. Existing sessions must finish on their owning deployment; start new conversations on the upgraded deployment. No production sessions were reset.

Setup and compatibility

  • Configure LINK_CLIENT_ID, LINK_CLIENT_SECRET, and STRIPE_PUBLISHABLE_KEY, set the canonical BETTER_AUTH_URL, and register the exact /api/auth/callback/link redirect URI with Stripe.
  • Apply migration 0014_chief_tigra.sql with pnpm db:migrate before enabling Link.
  • Better Auth is upgraded to 1.7.5, the official Link plugin's minimum version.
  • Link extension 0.2.3 was compiled against an older Eve contract. The documented package patch rebuilds Stripe's exact release source with Eve 0.69.0. Runtime JavaScript and skills remain byte-for-byte unchanged; only generated compatibility metadata and declaration ordering differ.

The Link extension upgrade also moves its SDK dependency to 0.11.0. The two exact releases have a temporary exception to the repository's 24-hour release-age gate; future versions remain subject to the gate.

Validation

  • pnpm check — passed: 724 tests, types, lint, formatting, and Knip.
  • pnpm test:runtime — passed: 2 real Eve runtime evaluations with 8 gates, covering browser continuation, cancellation, abort observation, and reuse of the same child session.
  • pnpm build — passed with build-only environment values.
  • pnpm exec eve build --skip-sandbox-prewarm — passed; all 13 Link tools compile into the agent.
  • pnpm install --frozen-lockfile — passed. Focused Taze audit reports Eve up to date; the broader audit encountered a drizzle-orm registry timeout.
  • Independent review and re-review completed. The second-wallet issue and unrelated lockfile drift found during review were resolved.

Link integration tests use real Better Auth and PGlite with mocked Stripe responses for OAuth/PKCE, callback ownership, encrypted grants, refresh, revocation, and rejection of a second wallet. Live Stripe OAuth and payments remain unverified. Full local sandbox preparation requires the optional microsandbox package, which is absent from this checkout.

@fmhall fmhall changed the title Add Stripe Link Eve extension with per-user wallets Add Link wallets and migrate to Eve 0.69 Oct 1, 2026
@fmhall
fmhall merged commit 6a2d988 into main Oct 2, 2026
2 checks passed

This branch was successfully deployed

1 active deployment
Preview — 6a2d988c Deployed Oct 2, 2026 by vercel[bot]
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