Repository navigation
docs: v1.16.0 post-tag updates (banners, integrations, pins, benchmarks, Glama sync) - #855
Conversation
…kip] - doc.go Version History gains v1.16.0. - gen-readme-metrics: README metrics block and docs/COMPARISON.md banner now track the v1.16.0 tag. - integrations/gorm and integrations/opentelemetry require v1.16.0. - lint-sql-in-ci guide and article pin @v1.16.0. - Parse-stage benchmarks re-measured on Apple M4 (median of 20 runs, 2026-10-22): SELECT 349 ns, INSERT 406, CTE 644, window 631, complex 1234. Same machine and load: v1.16.0 SimpleSelect is 26% faster than v1.15.0 (345 vs 469 ns, benchstat p=0.000 n=10); the absolute figure is above the 2026-10-13 318 ns because the machine was under ambient load (~2.8). Updated metrics.json, README, llms.txt, website metrics.ts and performance_baselines.json current_performance (CI baselines unchanged). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RkzVu3JY9Y6BRWfjesWts9
…unt [vercel skip] - GoReleaser publishes the release with GITHUB_TOKEN, so glama-sync.yml's `release: published` trigger never fired (it did not run for v1.16.0). glama-sync gains a workflow_dispatch `tag` input and release.yml dispatches it after GoReleaser (actions: write). The build is pinned to the tag's commit; the Glama build image's Go goes from 1.26.1 to 1.26.10. - llms.txt and CLAUDE.md: 8 dialects with dedicated grammar; --dialect also accepts generic, bigquery and redshift (matches README since #853). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RkzVu3JY9Y6BRWfjesWts9
From the v1.16.0 tag's Competitor Benchmarks run (39771034670, commit e9c5db9, generatedAt 2026-10-22T11:43:59Z, GitHub ubuntu-latest, go1.26.9). results/latest.{json,txt} and website/src/data/competitor-benchmarks.json (exact copy). gen-readme-metrics --claims (incl. About text) and the website metrics drift check pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RkzVu3JY9Y6BRWfjesWts9
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
|
Claude finished @ajitpratap0's task in 27s —— View job Review of PR #855Most of this is mechanical (metrics, pins, benchmark data) and looks consistent. I reviewed the workflow, Bug:
|
Each step runs in its own shell, so VERSION from the bump step was empty in the commit message. Found by claude-review on #855. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RkzVu3JY9Y6BRWfjesWts9
|
Claude encountered an error after 0s —— View job I'll analyze this and get back to you. |
|
Claude finished @ajitpratap0's task in 20s —— View job Review of PR #855Most of this is mechanical (metrics, pins, benchmark data, version banners) and looks consistent. I read the workflow diffs in full. I did not run the tests or generators, and I did not read the large benchmark result files. Resolved since the last review
Remaining concerns (
|
|
Claude finished @ajitpratap0's task in 16s —— View job Review of PR #855I read the workflow diffs ( The earlier Remaining workflow notes (non-blocking)
Docs and data
Overall this is good to merge. Only the optional SHA check above is worth adding. |
…commit SHA (#856) - New TestVersionManifestsMatchVersion (pkg/gosqlx) fails when glama.json, vscode-extension/package.json, the Claude Code plugin and marketplace manifests, performance_baselines.json or python/pyproject.toml (lockstep, .postN allowed) disagree with gosqlx.Version. v1.15.0 shipped with several of these at 1.14.0; release.yml only checks the tag against Version. Skips when the files are absent (module downloads). - glama-sync.yml: fail clearly if the release tag does not resolve to a 40-hex commit SHA instead of posting an empty pinnedCommitSha (review suggestion on #855). Claude-Session: https://claude.ai/code/session_01RkzVu3JY9Y6BRWfjesWts9 Co-authored-by: Ajit Pratap Singh <ajitpratapsingh@Ajits-Mac-mini-2655.local> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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
* docs(website): show the real-world dialect corpus on the homepage and 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 * feat(playground): dialect-aware Format, Transpile tab and transpile example - 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 * docs: document comment-preserving format, CLI additions and new API/AST 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 * docs(website): correct watch, transpile, AST and corpus wording for next 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 * docs(cli): describe watch validate/format modes and --dialect Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2 * chore(release): bump version surfaces to 1.17.0 [vercel skip] 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 * docs(release): v1.17.0 changelog, migration guide and API reference [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 * docs(release): mark the real-world corpus released and re-measure it [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 * docs(release): describe merged behaviour as released in v1.17.0 [vercel 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 * docs(changelog): record transpile and parse costs of the 1.17.0 correctness work Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2 * fix(release): keep tag-tracked version banners at v1.16.0 until the tag 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 * ci(lighthouse): give /playground/ its own total-size budget 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 --------- Co-authored-by: Ajit Pratap Singh <ajitpratapsingh@Ajits-Mac-mini-2655.local> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* docs(website): show the real-world dialect corpus on the homepage and 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 * feat(playground): dialect-aware Format, Transpile tab and transpile example - 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 * docs: document comment-preserving format, CLI additions and new API/AST 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 * docs(website): correct watch, transpile, AST and corpus wording for next 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 * docs(cli): describe watch validate/format modes and --dialect Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2 * chore(release): bump version surfaces to 1.17.0 [vercel skip] 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 * docs(release): v1.17.0 changelog, migration guide and API reference [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 * docs(release): mark the real-world corpus released and re-measure it [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 * docs(release): describe merged behaviour as released in v1.17.0 [vercel 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 * docs(changelog): record transpile and parse costs of the 1.17.0 correctness work Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2 * fix(release): keep tag-tracked version banners at v1.16.0 until the tag 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 * ci(lighthouse): give /playground/ its own total-size budget 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 * fix(playground): resolve the #877 review items - 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 --------- Co-authored-by: Ajit Pratap Singh <ajitpratapsingh@Ajits-Mac-mini-2655.local> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Summary
Post-tag follow-ups for v1.16.0 (these fail CI before the tag exists).
go run ./scripts/gen-readme-metrics(README metrics block,docs/COMPARISON.md).integrations/gormandintegrations/opentelemetryrequiregithub.com/ajitpratap0/GoSQLX v1.16.0(were v1.14.0); tidy, build and tests pass.@v1.16.0indocs/guides/lint-sql-in-ci.mdand the lint-in-CI website article.BenchmarkPerformanceBaseline, median of 20 runs, 2026-10-22): SELECT 349 ns, INSERT 406, CTE 644, window 631, complex 1234. Under identical conditions v1.16.0 SimpleSelect is 26% faster than v1.15.0 (345 vs 469 ns, benchstat p=0.000 n=10); the absolute figure sits above the 2026-10-13 318 ns because of ambient machine load. Updatedmetrics.json(runs: 20), README,llms.txt,website/src/data/metrics.tsandperformance_baselines.jsoncurrent_performance(CI thresholds unchanged).bench-comparepublish run (commit e9c5db9) →benchmarks/compare/results/latest.{json,txt}and an exact copy inwebsite/src/data/competitor-benchmarks.json.GITHUB_TOKEN, which starts no workflows, soglama-sync.ymlnever ran for v1.16.0. It gains aworkflow_dispatchtaginput;release.ymldispatches it after GoReleaser (actions: write). Build pinned to the tag's commit; Glama build image Go 1.26.1 → 1.26.10. Note:GLAMA_SESSION_COOKIEis not set, so the Glama build trigger still skips until the maintainer adds it.llms.txtandCLAUDE.mdsay 8 dialects with dedicated grammar, and that--dialectalso acceptsgeneric,bigquery,redshift(matches README since fix: single-source core lint rules, derive CLI version, fix README dialect note #853).Test Plan
go run ./scripts/gen-readme-metrics --checkand--claims --about "<current About>": ok at v1.16.0node website/scripts/check-metrics-drift.mjs: passedgo test -run TestPerformanceRegression ./pkg/sql/parser/: okgo mod tidy && go build ./... && go test ./...in both modulesgh workflow run glama-sync.yml -f tag=v1.16.0to sync this releaseBreaking Changes
None.
🤖 Generated with Claude Code
https://claude.ai/code/session_01RkzVu3JY9Y6BRWfjesWts9