Skip to content

Draft: agent self-signup - #1027

Draft
jiashuoz wants to merge 6 commits into
mainfrom
feat/agent-self-signup
Draft

jiashuoz wants to merge 6 commits into
mainfrom
feat/agent-self-signup

Conversation

@jiashuoz

Copy link
Copy Markdown
Member

Status

Exploratory draft only. This is not ready for review, release, or merge, and the feature is not urgent.

Scope

  • Public provisional agent signup and verification endpoints
  • Restricted provisional sending and human dashboard approval/rejection
  • Optional reuse of the existing outbound human-review queue after verification
  • Python and TypeScript SDKs, CLI, MCP tools, dashboard, OpenAPI, and agent-readable discovery docs

Current verification

Focused Go signup, HTTP, agent, WebSocket, and composition packages compile and pass. Broader release verification remains intentionally incomplete while the security TODOs are open.

Merge gate

Do not merge. Resolve the TODO checklist in the follow-up PR comment, rerun the complete test and local-service e2e gates, and obtain fresh implementation and adversarial reviews first.

@jiashuoz

Copy link
Copy Markdown
Member Author

Deferred security and correctness work

This draft is intentionally parked and is not ready to merge or ship. Before it can leave draft status:

  • Atomically transfer the provisional agent's storage, usage counters, events, contacts/outreach state, and retry/idempotency ownership to the verified human account; reconcile target plan accounting and retire the provisional account safely.
  • Finish and test the transactional verification-email outbox, including stale-job suppression, retry/dedup behavior, and provider failure handling. No provider I/O may occur while the signup transaction or advisory locks are held.
  • Remove nested pool acquisition from the verification transaction while preserving code-attempt and plan-cap races.
  • Add safe transport idempotency for a lost signup response, separate from possession-authorized credential rotation; disable unsafe automatic client retries until replay is guaranteed.
  • Add a bounded per-source limiter at the public MCP signup edge while retaining the backend recipient-based abuse limit.
  • Complete credential invalidation across API keys, identity assertions, access tokens, and established WebSockets for rotation, rejection, and expiry.
  • Add lifecycle expiry and reclamation for abandoned provisional identities, inbox names, stored data, and provisional accounts.
  • Replace raw recipient addresses in the verification throttle with an HMAC-derived key and globally purge expired throttle rows.
  • Consume the five-send provisional allowance atomically with message acceptance and close the pending-to-verified race.
  • Require or otherwise guarantee the human dashboard link in verification messages.
  • Add Cache-Control: no-store to the MCP response containing the plaintext key and retain the REST regression coverage.
  • Add regression coverage for an operator-adopted shared-domain row.
  • Rerun the complete Go, SDK, CLI, MCP, web, contract, migration, and local over-the-wire e2e gates.
  • Obtain fresh independent implementation and adversarial reviews after all fixes.

There is no near-term submission target for this feature. Please keep the PR in draft.

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