Commit Graph

31 Commits

Author SHA1 Message Date
f382ef0369 fix: relax conversational guard on long/detailed messages over 60 chars to allow prompt tool execution 2026-06-02 12:26:04 -07:00
d04c85d7b8 debug: write gemini raw response to disk-backed /tmp/last_gemini.json for accurate multinode diagnostics 2026-06-01 15:54:12 -07:00
fbb542a3c7 debug(gemini): add /api/chat/debug endpoint to capture raw response 2026-06-01 13:51:46 -07:00
2d1691575f fix(chat): gemini empty-answer fallback + empty-completion guard; chat routes accept workspace key 2026-06-01 13:25:10 -07:00
ef0d84cf5f chat routes accept workspace API key (thin-client Change 8.1) 2026-06-01 12:50:47 -07:00
b3dd3714c3 feat(refactor): live zed-style codebase files autocomplete and context attachment 2026-05-21 17:20:31 -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
7c45fdc5cc fix(ai): bump roundSinceText cutoff to 30 to prevent panic loops 2026-05-19 15:26:15 -07:00
5573f1e6fa fix(ai): restore thinking animations for gemini streams 2026-05-19 14:53:24 -07:00
d7d4b2d2fe fix(ai): bump loop-breaker limits from 16 to 30 to permit long autonomous workflows 2026-05-19 14:51:45 -07:00
bbcd4ad55e fix(ai): implement Phase 2 and 3 prompt recommendations from review 2026-05-19 13:47:18 -07:00
618f7796b2 feat(ai): optimize tool loops, fix deployments, and integrate new onboarding flow 2026-05-19 12:52:47 -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
1545145292 fix(ai): implement two-stage loop detection to warn before hard-stopping (Fix 11) 2026-05-16 12:59:16 -07:00
f2c29857b5 fix(ai): relax fs_edit line number enforcement to allow safe oldString replacements 2026-05-16 12:54:15 -07:00
ca8a915fe2 fix(ai): sync auto-commit with streamed result to surface commit SHA to UI (Fix 10) 2026-05-16 12:26:54 -07:00
89c9b01669 fix(ai): add hard-rule prompt clause forbidding unverified mutation claims (Fix 8) 2026-05-16 12:25:26 -07:00
24a7689d69 fix(ai): force recovery summary when final tools fail (Fix 6) 2026-05-16 12:25:00 -07:00
36c9dd47fb fix(ai): implement fixes 4, 5, and 7 to broaden loop detection, tighten silent stretches, and lower tool round caps 2026-05-16 12:24:09 -07:00
9f59b584e5 fix(ai): feed verified tool history back into model context to prevent hallucination compounding (Fix 3) 2026-05-16 12:22:58 -07:00
f0d7548fe1 feat(ai): persist raw tool execution results in postgres to enable fine-tuning dataset extraction 2026-05-16 11:59:46 -07:00
b92939ab86 fix(ai): update system prompt to enforce line-number usage for fs_edit to prevent 404 block mismatches 2026-05-15 16:38:17 -07:00
485ed73572 feat(ai): inject dynamic codebase summary into system prompt to eliminate blind structure searches 2026-05-15 16:16:45 -07:00
d464ccd19d feat(ui): hardcode visual preview tab to primary frontend port 3000 2026-05-15 16:03:06 -07:00
9c903d22ef feat(ai): integrate open-design capabilities (templates, media generation, visual QA) 2026-05-15 11:07:44 -07:00
8a7897a891 feat(ui): add mobile preview device framing and design QA tools 2026-05-15 11:01:49 -07:00
c3b06b61fc fix(mcp): resolve external preview routing failures and correct monorepo git paths 2026-05-14 14:56:29 -07:00
c51c3c21b3 fix(ai): strip deepseek xml tags from chat history & secure git tools
This commit addresses the issue where DeepSeek's raw XML markup (like <tool_calls> and <think>) was leaking into chat history, causing hallucinations in subsequent turns. It also patches a vulnerability in the git commit tool where arbitrary shell injection was possible.

Additionally, it includes UX copy and color contrast adjustments for the marketing homepage breadcrumbs.
2026-05-14 11:34:42 -07:00
a30c3373dc feat(marketing): replace landing page with new site design and animations 2026-05-13 20:50:02 -07:00
b13aef2171 fix(ai): add system prompt guardrail to prevent infinite dev server loops when testing protected auth routes 2026-05-13 15:07:31 -07:00
abf9bf89c2 chore: convert submodules to standard directories for true monorepo structure 2026-05-13 14:54:23 -07:00