Skip to content

fix(eve): harden the eve integration against upstream drift - #114

Merged
HugoRCD merged 1 commit into
mainfrom
chore/eve-audit-hardening
Aug 28, 2026
Merged

fix(eve): harden the eve integration against upstream drift#114
HugoRCD merged 1 commit into
mainfrom
chore/eve-audit-hardening

Conversation

@HugoRCD

@HugoRCD HugoRCD commented Aug 28, 2026

Copy link
Copy Markdown
Member

Summary

Follow-up to an audit of the eve integration after #108/#110/#112. eve ships several releases a week and the durable-stamp contract is undocumented; this PR fixes one latent bug and adds the guards that catch upstream drift before consumers do.

  • Fix: object-shaped eve ApprovalConfiguration values ({ request, response }) passed via requireApproval or overrides.approval were silently replaced by always(). They now pass through to defineTool unchanged, so a response authorizer survives.
  • Version alignment: the SDK was typed and tested against eve ~0.40.0 while the extension used ^0.46.1. The workspace is now on a single version (0.46.1). The bump surfaced two real type breaks the skew was masking (approval types moved to eve/tools/approval; defineTool overload resolution picks the background-tool overload on bare literals), both fixed.
  • Peer ranges bounded to the tested versions on both packages: eve >=0.44.0 <0.48.0 (the SDK claimed >=0.19.0).
  • New guards: a parity test pins the eve tool registry to GITHUB_TOOL_NAMES (TypeScript catches typos but not omissions), and a scheduled canary workflow (eve-canary.yml, daily) builds and tests the SDK and extension against eve@latest — the static AST guard only encodes stamping rules we already know about.
  • Config validation: requireApproval and overrides keys are validated against the tool catalog at mount time; a mistyped tool name now fails validation instead of being silently ignored.
  • MISSING_EVE_MESSAGE is deprecated (never thrown since eve moved to static imports); docs corrected (ten presets, not five).

Changesets: patch for @github-tools/sdk and @github-tools/eve-extension.

Test plan

  • pnpm build, pnpm lint, pnpm typecheck, pnpm test all pass
  • New tests: registry parity, ApprovalConfiguration passthrough (resolveEveToolApproval) and request extraction (mapEveApprovalValue)
  • Canary workflow runs green on its first scheduled/manual dispatch

- honor object-shaped ApprovalConfiguration values instead of silently
  mapping them to always(); configurations pass through to defineTool so
  response authorizers survive
- align the workspace on eve 0.46.1 (SDK was typed against 0.40) and fix
  the type breaks the bump surfaced (approval types moved to
  eve/tools/approval, defineTool overload resolution)
- bound the eve peer ranges to the tested versions (>=0.44 <0.48)
- add a registry parity test pinning the eve tool registry to
  GITHUB_TOOL_NAMES, and a scheduled canary workflow against eve@latest
- validate requireApproval/overrides keys against the tool catalog in the
  extension config schema
- deprecate MISSING_EVE_MESSAGE (never thrown since static imports)
- docs: ten presets, not five
@vercel

vercel Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
github-tools-docs Ready Ready Preview, v0 Aug 28, 2026 5:48pm
github-tools-test-agent Ready Ready Preview, v0 Aug 28, 2026 5:48pm

@github-actions github-actions Bot added the bug Something isn't working label Aug 28, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thank you for following the naming conventions! 🙏

@HugoRCD HugoRCD self-assigned this Aug 28, 2026
@HugoRCD
HugoRCD merged commit 09aeafb into main Aug 28, 2026
15 checks passed
@HugoRCD
HugoRCD deleted the chore/eve-audit-hardening branch August 28, 2026 18:04
@github-actions github-actions Bot mentioned this pull request Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant