Skip to content

feat(grove): add actor authentication and orb dev controls - #400

Merged
returnsvoidjanet merged 33 commits into
mainfrom
feat/grove-actor-auth-orb-ready
Aug 15, 2026
Merged

feat(grove): add actor authentication and orb dev controls#400
returnsvoidjanet merged 33 commits into
mainfrom
feat/grove-actor-auth-orb-ready

Conversation

@lishaduck

Copy link
Copy Markdown
Member

Summary

  • add Grove's durable Actor authority for People and Agents, including issuer-qualified external identities, Home Host ownership, lifecycle/currentness, explicit Agent enrollment, and capability/access containment
  • converge browser Remote Functions, REST, and MCP on shared server-stamped invocation context and transport-blind named Sprout commands
  • adopt the official MCP v2 server/client flow with protected-resource OAuth ingress, audience/scope validation, current per-operation authorization, and bearer-only MCP identity
  • harden browser OIDC/Better Auth composition, owner bootstrap/readiness, token storage, and Person session hydration
  • add an orb-native development control plane: supervised Grove/OIDC services, idempotent ensure command, __dev login/logout/preflight, bounded sanitized browser logs, persistent dev signing keys, and explicit MCP Agent enrollment
  • document the Actor authority model and exact agent-facing orb workflow

Security boundaries

  • browser sessions and MCP bearer credentials remain separate trust domains; cookies never authorize /mcp
  • unknown, non-current, and unbound Agent identities fail closed; enrollment is explicit
  • grove:mcp is transport admission, not blanket command capability
  • __dev requires both a SvelteKit development build and GROVE_ORB_DEV_AUTH=1; production build verification excludes its implementation
  • the checked-in MCP development credential is intentionally limited to trusted disposable-orb owners and is explicitly documented as unsafe for production

Validation

  • vp run --filter @petalnet/grove test — 79/79 passed
  • vp run --filter @petalnet/grove check — 0 errors, 0 warnings
  • vp run --filter @petalnet/grove build — passed, including production control-plane exclusion
  • vp run --filter @petalnet/effect-api test — 14/14 passed
  • scoped ESLint, Oxlint, Knip, formatting, shell syntax, and git diff --check passed during the audited implementation run
  • public orb login/logout/preflight and official MCP v2 Agent enrollment passed
  • OIDC-only restart preserved Grove's PID and signing key ID; a fresh Agent enrollment succeeded immediately afterward

Operational entrypoint

Run .agents/ensure-grove from the repository root. Grove-specific orb guidance lives in apps/grove/AGENTS.md.

ampagent and others added 30 commits August 12, 2026 19:36
Introduce Person JIT binding, explicit Agent enrollment, Home Host ownership, currentness, and capability-containment enforcement. The actor authority is the single transaction owner for identity and access mutations.

Amp-Thread-ID: https://ampcode.com/threads/T-019ff6db-1023-70fd-8fd0-6e6442a84f46
Co-authored-by: Eli <elisha.dukes@gmail.com>
Co-authored-by: Eli <elisha.dukes@gmail.com>
Co-authored-by: Eli <elisha.dukes@gmail.com>
@lishaduck
lishaduck requested a review from PetalCat as a code owner August 14, 2026 00:07
Comment thread apps/grove/src/lib/server/dev/browser-logs.ts Fixed
Comment thread apps/grove/src/lib/server/dev/browser-logs.ts Fixed
Comment thread apps/grove/test/dev-browser-logs.test.ts Fixed
Comment thread apps/grove/test/dev-oidc.test.ts Fixed
ampagent and others added 2 commits August 14, 2026 00:40
Use one file descriptor for bounded browser-log writes and signing-key assertions so file validation and use cannot race. Keep the operational MCP client as a direct runtime dependency and remove test-only exports rejected by strict Knip.

Amp-Thread-ID: https://ampcode.com/threads/T-019fecd4-51da-72c7-a3bc-081241c51785
Co-authored-by: Eli <elisha.dukes@gmail.com>
@returnsvoidjanet
returnsvoidjanet merged commit 457f76d into main Aug 15, 2026
16 checks passed
@returnsvoidjanet
returnsvoidjanet deleted the feat/grove-actor-auth-orb-ready branch August 15, 2026 03:19
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.

4 participants