sandbox-agent/foundry
Nathan Flurry 4111aebfce
feat(foundry): task owner git auth + manual owner change UI (#263)
* Add task owner git auth proposal and sandbox architecture docs

- Add proposal for primary user per task with OAuth token injection
  for sandbox git operations (.context/proposal-task-owner-git-auth.md)
- Document sandbox architecture constraints in CLAUDE.md: single sandbox
  per task assumption, OAuth token security implications, git auto-auth
  requirement, and git error surfacing rules

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Add proposals for reverting to queues and rivetkit sandbox resilience

- proposal-revert-actions-to-queues.md: Detailed plan for reverting the
  actions-only pattern back to queues/workflows now that the RivetKit
  queue.iter() bug is fixed. Lists what to keep (lazy tasks, resolveTaskRepoId,
  sync override threading, E2B fixes, frontend fixes) vs what to revert
  (communication pattern only).

- proposal-rivetkit-sandbox-resilience.md: Rivetkit sandbox actor changes for
  handling destroyed/paused sandboxes, keep-alive, and the UNIQUE constraint
  crash fix.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(foundry): add manual task owner change via UI dropdown

Add an owner dropdown to the Overview tab that lets users reassign task
ownership to any organization member. The owner's GitHub credentials are
used for git operations in the sandbox.

Full-stack implementation:
- Backend: changeTaskOwnerManually action on task actor, routed through
  org actor's changeWorkspaceTaskOwner action, with primaryUser schema
  columns on both task and org index tables
- Client: changeOwner method on workspace client (mock + remote)
- Frontend: owner dropdown in right sidebar Overview tab showing org
  members, with avatar and role display
- Shared: TaskWorkspaceChangeOwnerInput type and primaryUser fields on
  workspace snapshot types

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 17:05:11 -07:00
..
docker chore(foundry): migrate to actions (#262) 2026-03-16 15:23:59 -07:00
e2e Rename Foundry handoffs to tasks (#239) 2026-03-11 13:23:54 -07:00
memory Rename Foundry handoffs to tasks (#239) 2026-03-11 13:23:54 -07:00
packages feat(foundry): task owner git auth + manual owner change UI (#263) 2026-03-16 17:05:11 -07:00
research chore(foundry): workbench action responsiveness (#254) 2026-03-14 20:42:18 -07:00
screenshots Fix Foundry UI bugs: org names, sessions, and repo selection (#250) 2026-03-13 20:48:22 -07:00
scripts chore(foundry): workbench action responsiveness (#254) 2026-03-14 20:42:18 -07:00
AGENT-HANDOFF.md chore(foundry): migrate to actions (#262) 2026-03-16 15:23:59 -07:00
AGENTS.md Rename Foundry handoffs to tasks (#239) 2026-03-11 13:23:54 -07:00
CLAUDE.md feat(foundry): task owner git auth + manual owner change UI (#263) 2026-03-16 17:05:11 -07:00
compose.dev.yaml SDK: Add ensureServer() for automatic server recovery (#260) 2026-03-15 20:29:28 -07:00
compose.mock.yaml Remove frontend errors and app passthrough (#251) 2026-03-13 21:14:31 -07:00
compose.preview.yaml chore(foundry): workbench action responsiveness (#254) 2026-03-14 20:42:18 -07:00
CONTRIBUTING.md Rename Foundry handoffs to tasks (#239) 2026-03-11 13:23:54 -07:00
FOUNDRY-CHANGES.md chore(foundry): migrate to actions (#262) 2026-03-16 15:23:59 -07:00
foundry-cloud.md Rename Foundry handoffs to tasks (#239) 2026-03-11 13:23:54 -07:00
railway.toml Rename Foundry handoffs to tasks (#239) 2026-03-11 13:23:54 -07:00
README.md chore(foundry): workbench action responsiveness (#254) 2026-03-14 20:42:18 -07:00
tsconfig.base.json Remove frontend errors and app passthrough (#251) 2026-03-13 21:14:31 -07:00

Foundry

TypeScript organization task system powered by RivetKit actors, SQLite/Drizzle state, and OpenTUI.

Documentation: see ../docs/ in the repository root

Quick Install

curl -fsSL https://bun.sh/install | bash
pnpm install
pnpm -w build

Repository Goals

  • Simple: There's one screen. It has everything you need. You can use it blindfolded.
  • Fast: No waiting around.
  • Collaborative: Built for fast moving teams that need code reviewed & shipped fast.
  • Pluggable: Works for small side repositories to enterprise teams.

License

MIT