Pre-launch — Gluecron is in final validation. Public signups and git hosting for non-owner users open after launch review.
Commit23d8851unknown_key

chore: tick off Spec-to-Live progress UI as done

Claude committed on June 6, 2026Parent: da5ceed
1 file changed+1123d88516762a0b629536b4d5aab2f244da1ba43c
1 changed file+1−1
ModifiedTODO.md+1−1View fileUnifiedSplit
3333- [x] 2026-06-06 **Server targets → customer-facing**`src/routes/deploy-targets.tsx` (414 lines). `GET/POST /settings/deploy-targets`, `POST /settings/deploy-targets/:id/delete`, `POST /settings/deploy-targets/:id/test`. AES-256-GCM encryption via `SERVER_TARGETS_KEY`. Ownership-gated. Added to settings subnav and registered in `src/app.tsx`.
3434- [x] 2026-06-06 **Claude Web Sessions → customer-facing**`/:owner/:repo/claude` now open to all authenticated users with repo access. `listSessionsForUser()` scopes sessions to owner. Session list: colour-coded status badges, reverse-chron order. SSE stream via `GET /:owner/:repo/claude/:sessionId/stream?prompt=`. Spawns `claude --print --output-format stream-json`. "✨ Claude AI" sidebar card added to repo home (`src/routes/web.tsx`).
3535- [x] 2026-06-06 **AI budget hard enforcement**`assertAiQuota(userId)` added to `src/lib/billing.ts` with 60s in-memory cache. Wired into `ai-review.ts` (posts skip comment), `ai-review-trio.ts` (fail-closed trio result), `ai-ci-healer.ts` (returns skipped), `spec-to-pr.ts` (returns error to UI). Warn at 90%, throw `AiQuotaExceededError` at 100%. Fails open on DB error.
36- [ ] **Spec-to-Live real-time progress UI** — Spec→PR exists. The remaining loop is PR→AI review→auto-merge→deploy→notification. More importantly, the user submits a spec and sees a blank page or redirect. Wire a live progress view (SSE-backed) showing each stage as it happens: "Writing code... Opening PR... AI reviewing... Gates passing... Merged in 1m 52s." This is the "wow" moment.
36- [x] 2026-06-06 **Spec-to-Live real-time progress UI**`src/routes/specs.tsx` (+593 lines). POST redirects to `/:owner/:repo/spec/:jobId/progress`. Polling (2s, <20 lines JS) as primary; SSE endpoint as secondary. 8-stage timeline: analyzing→writing→opening_pr→ai_reviewing→gates_running→merging→deploying→done. In-memory `SpecJob` Map with 10-min eviction. No-JS server-render fallback.
3737- [ ] **Agent marketplace — real listings** — Migration `0070_agent_marketplace.sql` is complete with full schema (listings, installs, reviews, 30% revenue cut built in). The route `src/routes/marketplace-agents.tsx` exists. But there are only seed listings. Write a "Publish an agent" guide, reach out to 10 developers, get 20+ real listings.
3838
3939---
4040