Repository navigation
fix(playground): resolve the #877 review items - #888
Conversation
… compatibility page - metrics.ts: add REALWORLD_CORPUS (per-dialect pass/total from scripts/dialect-audit at 8d8c527, totals derived, released: false) and the REALWORLD_STATUS qualifier. - DialectShowcase: each dialect card shows "Real-world corpus: N/N" with an "on main, next release" qualifier; anchors and v1.15.0 QA badges unchanged. - FEATURES: Multi-Dialect cites the corpus from metrics.ts; new full-width "Format & Transpile" card (v1.14 features, comment/hint preservation marked next release) with a code icon so the grid stays balanced. - SQL_COMPATIBILITY.md: single-dialect reproduce command, the ratchet rule, and a table of unreleased statement syntax (multi-table UPDATE/DELETE, UPDATE/DELETE TOP and OUTPUT, GO [n], RETURNING INTO, ARRAY JOIN/LIMIT BY, MERGE with VALUES, CLONE ... AT, SEQUENCE DDL, EXPLAIN, Oracle '/', <=> and == gating), each example checked with ParseWithDialect. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
…xample
- wasm: format() now calls gosqlx.FormatWithDialect with the selected
dialect (TOP stays TOP in SQL Server, comments and hints are kept) and
returns {"result"} or {"error","error_span"} (bridge.TextResponse); add a
gosqlxTranspile(sql, from, to) export wrapping gosqlx.Transpile.
- bridge: Format and Transpile helpers with tests for dialect format,
comment preservation, ErrUnplaceableComment, operator/quote/escape
transpilation and transpile errors; contract fixture extended.
- website: Transpile tab (From is the editor dialect, To is selectable),
Format tab shares a SqlOutput component, TextData in bridgeTypes and the
contract check, loader gains transpile(); tab bar scrolls on narrow
screens; default SQL starts with a comment.
- homepage: Transpile API example (MySQL -> PostgreSQL) and a Format
example that keeps a comment, each with its printed output.
- regenerate src/generated/sample-ast.json (new AST quote fields).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
…ST surface - format guide: replace "Comments are not preserved" with comment and hint handling, ErrUnplaceableComment, FormatWithDialect and the CLI's comment check and fully lower-case --no-uppercase - CLI guide: add transpile, stats and watch sections, dialect aliases, validate --quiet/--check/--list-dialects, lint exit 1 on syntax errors, -o for parse/transpile; drop unsourced performance claims and link to /benchmarks/ - api/gosqlx.md: Format, FormatWithDialect, WithComments, Lint error contract, SplitStatements block and separator handling, Transpile operator mapping, ExtractColumns alias rule (#849) - api/ast.md: ExplainStatement, BatchSeparator, Extras/DialectExtras/ EnsureExtras, identifier quote style, literal introducers, TableReference.Modifiers, PIVOT/UNPIVOT additions, BinaryExpression.BitwiseXor; struct field names corrected from the Go source - feature tour: formatting with comments, transforms, fingerprinting and transpilation, with outputs produced from main - troubleshooting, usage, LSP and MCP guides: Lint error return, SplitStatements blocks/GO/DELIMITER/'/', LSP outline and formatting, MCP GO counts and alias columns - lint-sql-in-ci: fix the link to the renamed comments section Unreleased behaviour is marked in body text; no heading carries a version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
…website-next-release
…docs/website-next-release
…ext release - CLI_GUIDE: describe what gosqlx watch does today (watches, reports nothing, never rewrites files); drop the --mode claims pending the watch fix - CLI_GUIDE, api/gosqlx.md: ||/ becomes CBRT() only for Snowflake and ClickHouse; other targets return an error - CLI_GUIDE: remove unsourced validate latency/throughput claims - api/ast.md: DialectExtras() returns a shallow struct copy; EnsureExtras() is the mutable path - SQL_COMPATIBILITY: <=> and == accepted only in the listed dialects (none in v1.16.0), quote dialect-audit output exactly, qualify GO statement counts, call the corpus production-style - website: production-style corpus wording, CLI guide description, playground intro/meta mention transpile, Transpile tab notes comments are dropped - bridge: TextResponse doc matches WasmLoader.parseResult (throws on error) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
Library, CLI, MCP server.json, Claude Code plugin, Glama, VS Code extension, pygosqlx, performance baselines, website version constant and docs headers now report 1.17.0. Adds the 1.17.0 entries to the CLI and package version-history comments. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
…vercel skip] - CHANGELOG: rename [Unreleased] to [1.17.0] with a release summary; Behavior changes first (led by the #868 GO change), new Security and Performance sections, duplicates merged and PR numbers on every entry. - MIGRATION: v1.16.0 -> v1.17.0 checklist and companion versions. - VS Code extension changelog 1.17.0 entry. - API reference: new formatter package page; AST container fields, CTE/PIVOT fields, checked formatting, linter syntax errors, security scanner, tokenizer dialect lexing, LSP sync key and error handling, MCP parse_sql dialect, CLI security merge and quiet mode. - Generated v1-17-0 release post (split-changelog). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
…[vercel skip] Re-ran scripts/dialect-audit on all 8 dialects at fda9a5e: 2,813 statements (was 2,788), all passing. Updates metrics.ts (released: true, per-dialect counts, sourceCommit), the SQL_COMPATIBILITY table and every 2,788 mention, and regenerates the v1-17-0 release post. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
…el skip] Rewrite the "unreleased / on the main branch / next release" markers in the guides and API reference now that the behaviour ships in v1.17.0, and regenerate the homepage sample AST for the new AST fields. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
…ctness work Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
gen-readme-metrics --check requires the doc.go version history and the docs/*.md banners to match the latest tag; they move to 1.17.0 in the post-tag follow-up, as for v1.16.0 (#855). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
The playground page now transfers 3.60 MB (CI median), 1.4 KB over the shared 3.6 MB budget, because the GoSQLX WASM module grows with the parser. Budget it like its script size: measured value plus ~15%. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
- Render tests for SqlOutput and TranspileTab error, success and empty states (react-dom/server + in-process TypeScript, no new dependencies). - One useCopyFeedback hook for the four copy buttons: the reset timer is restarted on each click and cleared on unmount, and the "go get" copy now reports a failed clipboard write. - Document that parse/format/lint/analyze/highlight treat an unknown dialect as generic while transpile returns an error (JSDoc, wasm/main.go, docs/HIGHLIGHTING.md). - Drop the unused error_span from the Format/Transpile payload; Lint and Analyze keep parse_error_span, which the editor already marks. - Clamp WASM download progress to 1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Claude finished @ajitpratap0's task in 22s —— View job Review of PR #888I read the diff only. I didn't run the tests. The change is clean overall. The Issues
The only item I'd fix before merging is #1. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
|
Claude finished @ajitpratap0's task in 33s —— View job Review of PR #888I read the diff and the key files ( SummaryThe change is solid. Splitting the timer logic into the pure Issues
Security and performanceI found no security concerns. The WASM bundle stays lazy-loaded. |
|
Claude finished @ajitpratap0's task in 16s —— View job Review of PR #888I read the diff and the key files ( SummaryThe change is solid. Splitting the timer logic into the pure Issues
Security and performanceI found no security concerns. The WASM bundle stays lazy-loaded. |
|
Claude finished @ajitpratap0's task in 26s —— View job Review of PR #888I read the diff and re-checked the current branch. I didn't run the tests. SummaryThe change is solid. Issues
Security and performanceI found no security concerns. The WASM bundle stays lazy-loaded. Fix item 1 → |
Summary
Follow-ups from the claude-review on #877 (stacked on it; GitHub retargets this PR to
mainwhen #877 merges).SqlOutputandTranspileTaberror, success and empty states (website/scripts/sqlOutput.test.mjs): real components transpiled in-process withtypescriptand rendered withreact-dom/server; only the CodeMirror editor is stubbed. No new dependencies.useCopyFeedbackhook (backed by a pure, unit-testedcreateCopyFeedback) for the Format/Transpile output, Lint, AST and "go get" copy buttons. A second click restarts the reset timer, unmount clears it, and the "go get" copy now shows a failure instead of an unhandled rejection.unsupported source|target dialect "x"(JSDoc inWasmLoader.tsx,wasm/main.go, new table indocs/HIGHLIGHTING.md). Behaviour unchanged; a Go test pins the format fallback.error_spandropped from the Format/Transpile payload: nothing read it, and the editor already marks the same parse error from Lint/Analyzeparse_error_span. Contract fixture, types and tests updated.next/dynamic, runtime fetch) and served brotli-compressed by Vercel; only change is clamping download progress to 1.Test Plan
cd website && npm run typecheck && npm run lint && npm test— 44/44 pass; lint warnings unchanged from base (7, pre-existing)go test ./wasm/...,GOOS=js GOARCH=wasm go vet ./wasm/Breaking Changes
The WASM
format/transpileJSON no longer includeserror_spanon failure. It was undocumented outside the bridge types and unused by the site.🤖 Generated with Claude Code
https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2