Commit Graph
6 Commits
Author SHA1 Message Date
ahmed mohammedandClaude Opus 4.7 735a57bfd6 chore: untrack QA database, the local production plan, and a stray image
- .qa-data/qai.db{,-shm,-wal} was committed by an add -A during the cookie bug hunt; it holds throwaway accounts and sealed key blobs.
- plan-cxpaket.sqlplan (2.7 MB, real schema names) was committed one commit before the /plan-*.sqlplan ignore rule existed.
- an unrelated upscaled PNG from the working tree went in with the same add -A.
All four stay on disk and out of git; .ua/ is ignored too so generated graph data never sneaks in the same way.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-09-22 11:48:47 +03:00
ahmed mohammedandClaude Opus 4.7 6248540857 fix: candidates carry runnable T-SQL; placeholder sql is dropped, not rendered
Measured on a 2.7 MB production plan (plan-cxpaket.sqlplan, kept out of git):
- rewrite_sql becomes option_type + sql_to_run. The old name told the model 'query rewrite only', so an index option carried no CREATE INDEX anywhere in the pipeline and the report had zero SqlBlocks. It now requires paste-ready T-SQL per option, and the report prompt makes a SqlBlock per non-null sql_to_run a hard requirement.
- verify_semantics keys on option_type === 'rewrite' rather than 'has sql', so index and statistics options are not flagged just for carrying DDL.
- dropPlaceholderSql: 'SELECT ... FROM ... OPTION (MAXDOP 1)' is not runnable and was rendered as if it were. Ellipsis SQL is now nulled, and digestForModel reports sql_truncated so the model is told not to offer a rewrite for a statement it never received.
- max_tokens 2048 -> 4096 for both calls: the larger JSON outgrew the old ceiling and the user waited 38s for 'malformed JSON'. A truncated response now says how many characters it got, and extra params still override the ceiling.
- Real plan, live: 52s, 17 cards, 3 SqlBlocks with real table names and no placeholders, 3 ScoreBars, headline 'Query Plan Timeout on Parallel Join'. 43 unit, 23 e2e.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-09-22 11:30:27 +03:00
ahmed mohammedandClaude Opus 4.7 5160a00db5 fix: final review pass — email collision, orphaned-run loop, null confidence guards
- changeEmail validates and refuses an address another account owns (users.email is UNIQUE; a collision was a 500 inside the settings form).
- /app/[id] no longer redirects a 'running' row to itself; it renders what exists and says the run was interrupted.
- ScoreBar / OptionRow / VerdictBlock survive null numbers from the model instead of throwing and losing the block (seen live: '[openui] runtime/render-error: Component ScoreBar render failed').
- drop the ad-hoc render-debug scripts now that Playwright covers the browser.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-09-22 09:10:29 +03:00
ahmed mohammedandClaude Opus 4.7 07dd3d6bf8 test: playwright end-to-end qa (17 tests, real models)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-09-22 09:02:53 +03:00
ahmed mohammedandClaude Opus 4.7 f64dc3184b feat: tokens, shell, healthz
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-09-22 07:21:42 +03:00
ahmed mohammed 2778ce74ba docs: spec, implementation plan, jev goal gate 2026-09-21 14:14:12 +03:00