Skip to content

Persisted, identity-bound idea-submission record — blocked on identity/consent decision #7664

Description

@JSONbored

Problem

packages/loopover-engine/src/idea-intake.ts's IdeaSubmission/TaskGraph/ClaimPlan are pure and stateless by design (correct, per its own file-header). The only callers are MCP tools (loopover_intake_idea/loopover_plan_idea_claims, tagged for programmatic/"agent" use) and their REST mirrors. Neither has a renter/customer identity, session, or ToS-consent field, and nothing persists a submission — a submitter has no way to later ask "what happened to the idea I submitted." #7591's own addendum states consent "lives in the ToS at idea-submission time," but no submission surface today captures any identity or consent to attach that to.

Area

packages/loopover-engine/src/idea-intake.ts, src/api/routes.ts, src/db/schema.ts.

Proposal

Addendum (2026-07-21) — identity/consent decision ratified, implementation unblocked: reuse the existing src/auth/github-oauth.ts session flow as a lightweight interim identity source, rather than blocking on full billing/signup or keeping idea intake anonymous. A submitter authenticates via the existing GitHub OAuth session (no new auth flow — same infra ORB installation-admin auth already uses), and that session's identity is what a submission record binds to.

Persist a new submission record keyed by (submitter identity, submission time), capturing: the raw IdeaSubmission payload, the resulting TaskGraph/ClaimPlan if intake succeeded, and an explicit ToS-consent timestamp/version captured at submission time (per #7591's "consent lives in the ToS at idea-submission time"). idea-intake.ts's own pure/stateless functions are unaffected — this persistence wraps their callers (the MCP tools and REST mirrors), it doesn't change the pure core.

Deliverables

  • New DB schema for a persisted idea-submission record (migration in migrations/, Drizzle types in src/db/schema.ts).
  • MCP tool + REST route callers updated to require the existing GitHub OAuth session and persist a record on every submission.
  • ToS-consent version/timestamp captured on the record at submission time.
  • A way for the submitter to look up their own past submissions (at minimum, an authenticated query by their own identity — the "what happened to the idea I submitted" gap this issue opened with).
  • Tests: submission without a valid session is rejected; a valid session's submission is persisted and later retrievable by that same identity, and not by a different one.

Resources

Boundaries

Interim identity only — this is NOT the full customer signup/billing identity model; if/when that lands, this record's identity binding may need to migrate, tracked separately rather than blocking this issue.

maintainer-only — identity/consent-bearing data model, not a first-pass contributor task.

Metadata

Metadata

Assignees

Labels

maintainer-onlyOwner-only work — yields no Gittensor points.roadmapOn the Wave-2 agent-layer roadmap board (project 9)

Projects

Status
Todo

Relationships

None yet

Development

No branches or pull requests

Issue actions