Commit Graph

37 Commits

Author SHA1 Message Date
eb198e2d4d ship: project dashboard pages + sidebar/chat overhaul + log tooling
Ships accumulated WIP that was sitting uncommitted:
- New (home) dashboard route pages: overview, code, data/tables, hosting,
  infrastructure, services, domains, integrations, agents, analytics, api,
  automations, billing, logs, market, marketing(+seo/social), product, security,
  storage, users, settings(app/auth).
- dashboard-sidebar, project-icon-rail, chat-panel updates; mcp + anatomy route
  changes; package.json/lock dependency bumps.
- Coolify log tooling (scripts/fetch-app-logs.mjs + fetch-app-logs-ssh.mjs) and
  ai-new-thread.md "Fetching Production Logs" section.

Excludes throwaway debug scripts and telemetry audit dumps (the latter contain
live credentials and must not be committed).
2026-06-12 18:09:09 -07:00
95253c7707 fix(preview): resolve ReferenceError on isForceStarting initialization order 2026-06-12 16:46:35 -07:00
5a7e1abcc7 design(preview): restore path input box with datalist dropdown for free-text navigation 2026-06-12 15:03:16 -07:00
960232e525 design(preview): match toggle button sizes to device toggles 2026-06-12 15:00:40 -07:00
2b569bd55f fix(dashboard): re-add missing Users icon import for sidebar 2026-06-12 12:55:54 -07:00
9abc957260 design(dashboard): reorder sidebar navigation items per requested priority 2026-06-12 12:54:39 -07:00
81994d4b6c design(dashboard): remove unused routes, rename existing routes to match Base44 menu structure 2026-06-12 12:42:19 -07:00
1532cb6111 design(dashboard): rebuild sidebar to match Base44 navigation hierarchy and aesthetic 2026-06-12 12:34:39 -07:00
2a2962a098 design(preview): replace path input with strict dropdown menu 2026-06-12 12:22:50 -07:00
cd26dd807f feat(preview): add server/port dropdown to address bar 2026-06-12 12:20:48 -07:00
5ed10c4077 feat(preview): make address bar interactive for routing inside iframe 2026-06-12 11:57:36 -07:00
c1a43d18a6 feat(preview): add tablet device mode with scaled frame styling 2026-06-12 11:54:47 -07:00
2e8d9ddecc design(preview): organize address bar tools, move refresh button to far left 2026-06-12 11:50:54 -07:00
a52557f35b design(preview): consolidate desktop/mobile toggles inside the URL bar for a cleaner layout 2026-06-12 11:48:33 -07:00
f510848173 design(preview): move refresh button inside the address bar for a cleaner layout 2026-06-12 11:46:14 -07:00
308d7cd5e1 design(preview): remove text labels from device toggles to match reference 2026-06-12 11:45:09 -07:00
c337655dde design(preview): match header layout order to Base44 reference (URL bar on left, device toggles on right) 2026-06-12 11:43:25 -07:00
576446e36a design(preview): move preview/dashboard toggle to the left side of the header 2026-06-12 11:25:52 -07:00
41a1f66b2d design(preview): match toggle button sizes to device toggles 2026-06-12 11:20:51 -07:00
32aaf9b6ab design(preview): align Preview and Dashboard buttons next to Publish button on the right 2026-06-12 11:16:51 -07:00
7305c2a57c design(preview): replace mock visual tools with wide address bar showing active dev URL 2026-06-12 11:12:09 -07:00
55646f668e design(preview): replace mock visual tools with wide address bar showing active dev URL 2026-06-12 11:00:47 -07:00
548420c4f5 fix(preview): remove duplicate Palette import in project icon rail 2026-06-12 10:54:52 -07:00
2ee68c7ac2 feat(preview): add interactive address bar and visual editing tools to preview header 2026-06-12 10:52:38 -07:00
82a41f7e95 fix(stop+stability): stop button interrupts live generation; classifier, prompt + preview pane improvements
Stop button fix:
- Plumb AbortSignal end-to-end: callVibnChat → Gemini SDK (config.abortSignal) / OpenAI fetch → executeMcpTool (/api/mcp fetch)
- Treat abort as clean user stop (not fatal error); partial reply persisted with '(stopped by user)'

Classifier fix:
- Add timeout/gateway/5xx/connection-error vocabulary to diagnose intent
- Prevents 'I get a gateway timeout' from falling through to feature_build (40 rounds) and looping

Prompt / agent behaviour:
- Render verification is now scope-aware: small edits stop at green healthCheck; no browser_console/curl audit on healthy server
- Sanitize stale '### Phase Checkpoint' walls from loaded history so old threads stop biasing new turns
- Next.js dev command updated to --no-turbopack for container stability (per-route lazy compile caused cold-start 503s)
- New public page prompt: agent checks middleware allowlist in the same turn
- Scope discipline and QA-tool gating carried forward from prior session

Code cleanup:
- Remove duplicate AgentPhase declaration (TS2440)
- Remove dead checkpoint emit branch and orphan 'checkpoint' phase value
- Remove unused MAX_TOOL_ROUNDS constant

Preview pane (build status):
- 4-state machine: initial-load / building (with elapsed timer) / build-failed / not-running
- pollMs 0 → 5 000ms so dev-server recovery and build completion auto-update without refresh
- anatomy route + use-anatomy type: inFlightBuild gains createdAt for elapsed timer
2026-06-10 21:40:48 -07:00
a87faa2353 ux(chat): clean tool-pill results (no raw JSON, Failed/exit verbs); structured build-health status instead of 'didn't reach a clean stopping point'; label active toolbar mode 2026-06-10 17:44:19 -07:00
8049a7f1ab feat(refactor): premium zed-style chat UI, collapsible reasoning, and comprehensive strict type sweeps 2026-05-21 17:05:42 -07:00
618f7796b2 feat(ai): optimize tool loops, fix deployments, and integrate new onboarding flow 2026-05-19 12:52:47 -07:00
331312b648 fix(ui): adopt SWR for useAnatomy to deduplicate requests across components and fix API flooding 2026-05-17 20:18:19 -07:00
6b8862ef2b feat(api): comprehensive QA hardening — security gates, chat improvements, beta scaffolds
Closes checklist items F-01..F-06, D-01..D-28, S-01..S-10, C-01..C-07,
B-01..B-07, R-01..R-02, O-03.

Security (28 deletions + 10 auth gates):
- Delete 28 unauthenticated debug/cursor/firebase/test routes
- Gate ai/chat, ai/conversation, context/summarize, work-completed with withTenantProject/withAuth
- Add HMAC-SHA256 signature verification to webhooks/coolify
- Switch all admin secret comparisons to timingSafeStringEq

Foundations (lib/server/*):
- api-handler.ts: withAuth, withTenantProject, withWorkspace, withAdminSecret, withRateLimit
- logger.ts: structured request-scoped logging with turnId
- audit-log.ts: writeAuditLog helper + audit_log table
- rate-limit.ts: Postgres sliding window rate limiter
- coolify-webhook.ts: verifyCoolifySignature
- timing-safe.ts: timingSafeStringEq

Chat hardening (chat/route.ts):
- MAX_TOOL_ROUNDS 15 → 8 (C-01)
- Loop detection: hard-break at 3 identical fingerprints (was 5) (C-02)
- Add 6-consecutive-tool-call hard-break (C-02)
- Mode: respond first, act second prompt block (C-03)
- SSE heartbeat every 25s via setInterval (C-04)
- Per-tool 45s timeout via Promise.race (C-05)
- turnId per-turn UUID for log correlation (C-06)
- Recovery fires when roundsSinceText >= 4 (C-07)
- SSE plan event on plan_task_add/edit (B-05)

Beta features:
- invites table + GET/POST /api/invites (P4.8)
- invites/[token] validate + redeem (P4.8)
- fs_project_dev_servers table + lib/server/dev-server-state.ts (P6.B1)
- fs_project_secrets table + CRUD routes (P6.D2)
- lib/integrations/brief-extract.ts (P3.7)

Documentation:
- app/api/ROUTES.md: full route map with auth + tenant
2026-05-17 19:17:22 -07:00
8cb7a9450b feat(ui): add manual reload button to preview device toggles 2026-05-15 16:31:31 -07:00
4adf7a7659 feat(ui): remove design tab from primary navigation 2026-05-15 15:49:01 -07:00
dc82ccc47a feat(ui): move preview device toggles into the global nav rail 2026-05-15 15:42:49 -07:00
f3b957ace2 feat(ui): add showcase toggle and runtime renderer to design explorer 2026-05-15 14:09:27 -07:00
b4821b3eba fix(ui): handle fallback UI for design systems without visual previews 2026-05-15 14:00:01 -07:00
f9d74205fb feat(ui): implement split-pane live preview for design systems 2026-05-15 13:56:12 -07:00
abf9bf89c2 chore: convert submodules to standard directories for true monorepo structure 2026-05-13 14:54:23 -07:00