651ddf1e11
Rip out Theia, ship P5.1 attach E2E + Justine UI work-in-progress
...
Theia rip-out:
- Delete app/api/theia-auth/route.ts (Traefik ForwardAuth shim)
- Delete app/api/projects/[projectId]/workspace/route.ts and
app/api/projects/prewarm/route.ts (Cloud Run Theia provisioning)
- Delete lib/cloud-run-workspace.ts and lib/coolify-workspace.ts
- Strip provisionTheiaWorkspace + theiaWorkspaceUrl/theiaAppUuid/
theiaError from app/api/projects/create/route.ts response
- Remove Theia callbackUrl branch in app/auth/page.tsx
- Drop "Open in Theia" button + xterm/Theia PTY copy in build/page.tsx
- Drop theiaWorkspaceUrl from deployment/page.tsx Project type
- Strip Theia IDE line + theia-code-os from advisor + agent-chat
context strings
- Scrub Theia mention from lib/auth/workspace-auth.ts comment
P5.1 (custom apex domains + DNS):
- lib/coolify.ts + lib/opensrs.ts: nameserver normalization, OpenSRS
XML auth, Cloud DNS plumbing
- scripts/smoke-attach-e2e.ts: full prod GCP + sandbox OpenSRS +
prod Coolify smoke covering register/zone/A/NS/PATCH/cleanup
In-progress (Justine onboarding/build, MVP setup, agent telemetry):
- New (justine)/stories, project (home) layouts, mvp-setup, run, tasks
routes + supporting components
- Project shell + sidebar + nav refactor for the Stackless palette
- Agent session API hardening (sessions, events, stream, approve,
retry, stop) + atlas-chat, advisor, design-surfaces refresh
- New scripts/sync-db-url-from-coolify.mjs +
scripts/prisma-db-push.mjs + docker-compose.local-db.yml for
local Prisma workflows
- lib/dev-bypass.ts, lib/chat-context-refs.ts, lib/prd-sections.ts
- Misc: stories CSS, debug/prisma route, modal-theme, BuildLivePlanPanel
Made-with: Cursor
2026-04-22 18:05:01 -07:00
14835e2e0a
Revert "fix(gitea-bot): add write:organization scope so bot can create repos"
...
This reverts commit 6f79a88abd .
Made-with: Cursor
2026-04-21 11:12:20 -07:00
6f79a88abd
fix(gitea-bot): add write:organization scope so bot can create repos
...
Without this the bot PAT 403s on POST /orgs/{org}/repos, which is
the single most important operation — creating new project repos
inside the workspace's Gitea org.
Made-with: Cursor
2026-04-21 11:05:55 -07:00
fc59333383
feat: auto-approve UI + session status approved
...
- sessions POST: look up coolifyServiceUuid, pass autoApprove:true to runner
- sessions PATCH: approved added to terminal statuses (sets completed_at)
- build/page.tsx: approved status, STATUS_COLORS/LABELS for "Shipped",
auto-committed UI in changed files panel, bottom bar for approved state
- Architecture doc: fully updated with current state
Made-with: Cursor
2026-03-07 13:17:33 -08:00
28b48b74af
fix: surface agent_sessions 500 and add db migration
...
- sessions/route.ts: replace inline CREATE TABLE DDL with a lightweight
existence check; add `details` to all 500 responses; fix type-unsafe
`p.id = $1::uuid` comparisons to `p.id::text = $1` to avoid the
Postgres `text = uuid` operator error
- app/api/admin/migrate: one-shot idempotent migration endpoint secured
with ADMIN_MIGRATE_SECRET, creates fs_* tables + agent_sessions
- scripts/migrate-fs-tables.sql: formal schema for all fs_* tables
Made-with: Cursor
2026-03-07 12:16:16 -08:00
f7d38317b2
fix: add ::uuid casts to all agent_sessions queries
...
PostgreSQL can't implicitly coerce text params to UUID columns.
Add explicit ::uuid casts on id and project_id in all agent session
routes (list, get, patch, stop, approve).
Made-with: Cursor
2026-03-07 11:49:40 -08:00
61a43ad9b4
pass giteaRepo to agent runner; add runner secret auth on PATCH
...
- Sessions route now reads giteaRepo from project.data and forwards it
to /agent/execute so the runner can clone/update the correct repo
- PATCH route now validates x-agent-runner-secret header to prevent
unauthorized session output injection
Made-with: Cursor
2026-03-06 18:01:33 -08:00
ad3abd427b
feat: agent execution scaffold — sessions DB, API, and Browse/Agent/Terminal UI
...
Session model:
- agent_sessions table (auto-created on first use): id, project_id,
app_name, app_path, task, status, output (JSONB log), changed_files,
error, timestamps
- POST /agent/sessions — create session, fires off to agent-runner
(gracefully degrades when runner not yet wired)
- GET /agent/sessions — list sessions newest first
- GET /agent/sessions/[id] — full session state for polling
- PATCH /agent/sessions/[id] — internal: agent-runner appends output lines
- POST /agent/sessions/[id]/stop — stop running session
Build > Code section now has three mode tabs:
- Browse — existing file tree + code viewer
- Agent — task input, session list sidebar, live output stream,
changed files panel, Approve & commit / Open in Theia actions,
2s polling (Phase 3 will replace with WebSocket)
- Terminal — xterm.js placeholder (Phase 4)
Architecture documented in AGENT_EXECUTION_ARCHITECTURE.md
Made-with: Cursor
2026-03-06 17:56:10 -08:00