Releases: harehare/mq
Releases · harehare/mq
v0.5.24
Immutable
release. Only release title and notes can be modified.
What's Changed
- ⚡ perf(web-api): offload CPU-bound handlers to blocking thread pool by @harehare in #1495
- ✨ feat(lang): support negative index for get on array, string, and markdown by @harehare in #1496
- ✨ feat(vscode): add GitHub Releases binary download as install option by @harehare in #1508
- ✨ feat(web-api): add API versioning and health check endpoint by @harehare in #1511
- ✨ feat(crawler): add flexible headless wait strategies for SPAs by @harehare in #1499
- ✨ Add exhaustiveness checking for pattern matching expressions by @harehare in #1494
- ✨ feat(cli): add -m option to import modules with namespace prefix by @harehare in #1505
- 🐛 fix(mq-crawler): support parallel headless Chromium by using per-client temp user data dir by @harehare in #1493
- 🐛 fix(playground): add collect() to section extraction example by @harehare in #1498
- ⚡ perf(web-api): add mimalloc, gzip compression, and cache OpenAPI spec by @harehare in #1502
- 📦 build(playground): migrate from npm to pnpm by @harehare in #1503
- ♻️ refactor(web-api): replace libsql rate limiter with in-memory implementation by @harehare in #1509
Full Changelog: v0.5.23...v0.5.24
v0.5.23
Immutable
release. Only release title and notes can be modified.
What's Changed
- ✨ feat(mq-lang): replace custom YAML parser with yaml-rust2 native implementation by @harehare in #1486
- ✨ feat(mq-lang): support bracket slice on QualifiedAccess and [:N] syntax by @harehare in #1487
- ✨ feat(section): improve section module with bodies, by_level, and auto-expand by @harehare in #1488
- ✨ feat(cli): auto-expand table dicts to markdown nodes in CLI output by @harehare in #1490
- ✨ feat(web-api): extend API to CLI feature parity by @harehare in #1491
- 🐛 fix(mq-check): register ?? and .. as builtin operator overloads by @harehare in #1489
Full Changelog: v0.5.22...v0.5.23
v0.5.22
Immutable
release. Only release title and notes can be modified.
What's Changed
- ✨ feat(mq-check): add dead code detection and improve type inference by @harehare in #1481
- ✨ feat(crawler): add headless_wait option for Chromium mode by @harehare in #1473
- ✨ feat(mq-check): add slugify and percentile functions to builtin registry by @harehare in #1474
- ✨ feat(lang): convert array to newline-separated string for markdown output by @harehare in #1479
- 🐛 fix(deps): enable reqwest default features for mq-crawler by @harehare in #1485
- 🐛 Remove deprecated flatten and fix builtin functions by @harehare in #1482
- ♻️ refactor(mq-lang): improve error messages by @harehare in #1472
- 🔧 chore(dependabot): review and update dependabot.yml by @harehare in #1484
Full Changelog: v0.5.20...v0.5.22
v0.5.20
Immutable
release. Only release title and notes can be modified.
What's Changed
✨ Features
- feat(playground): add type checking and inlay hints support by @harehare in #1398
- feat(lsp): filter type errors to only those originating from the current source by @harehare in #1445
- feat: add TOON module support and implement stringify/parse functions by @harehare in #1408
- feat: improve type error reporting with full ranges and minimal CLI output by @harehare in #1450
- feat(mq-check): add constraint origin and contextual help to type errors by @harehare in #1452
- feat(mq-lang): add percentile builtin function by @harehare in #1453
- feat(mq-repl): improve REPL tab completion with word-boundary awareness by @harehare in #1455
- feat(mq-lang): add native _csv_parse builtin using csv crate by @harehare in #1456
- feat(mq-lang): replace mq-lang JSON parser with native serde_json builtin by @harehare in #1462
- feat(mq-lang): replace toon parser with native toon-format builtin by @harehare in #1463
- feat(mq-lang): replace XML parser with native quick-xml builtin by @harehare in #1464
- feat(playground): add resizable panels and editor enhancements by @harehare in #1468
- feat(mq-lang): add destructuring assignment for let/var by @harehare in #1466
🐛 Fixes
- fix(mq-check): skip Refs with Selector children in type narrowing by @harehare in #1434
- fix(mq-check): propagate piped input to function calls inside let bindings by @harehare in #1461
- fix(mq-crawler): improve HTML to Markdown conversion for pages with sidebars and JS by @harehare in #1469
📝 Documentation
- docs: add installation section to landing page by @harehare in #1454
- docs: simplify project documentation and remove obsolete command files by @harehare in #1465
Full Changelog: v0.5.19...v0.5.20
v0.5.19
Immutable
release. Only release title and notes can be modified.
What's Changed
- ✨ feat(mq-web): add inlayHints API support by @harehare in #1432
- 🐛 fix: bracket-based selector syntax (.[n], .[n][m]) by @harehare in #1430
- 🐛 fix(markdown): filter empty values in Fragment render, join with newline by @harehare in #1431
- 🐛 fix(scripts): add mq-check version bump in bump_version.mq by @harehare in #1433
Full Changelog: v0.5.18...v0.5.19
v0.5.18
Immutable
release. Only release title and notes can be modified.
What's Changed
Features & Improvements
- feat(typechecker): support row polymorphism for dicts via Record type by @harehare in #1364
- ✨ feat: add type predicate-based narrowing for union types in if/elif branches by @harehare in #1367
- ✨ feat(strict-array): implement strict array mode to enforce homogeneous arrays and add related tests by @harehare in #1368
- ✨ Implement tuple mode by @harehare in #1369
- feat(mq-check): support piped builtin calls and self keyword type propagation by @harehare in #1370
- ✨ feat(release): add mq-check artifact renaming and upload to release workflow by @harehare in #1372
- ✨ feat: add frontmatter extraction examples and documentation by @harehare in #1384
- Integrate mq-check crate and type checker options by @harehare in #1373
- ✨ feat(mq-wasm): add mq-check dependency and implement inlayHints API with type checking support by @harehare in #1397
- ✨ feat(mq-lang): add incremental CST parser by @harehare in #1400
- ✨feat(lang): support def without params in parser by @harehare in #1413
- ✨ chore(crawler): rename binary from mqcr to mq-crawl and update references by @harehare in #1394
Bug Fixes
- Fix undefined field access tests to assert TypeError::UndefinedField specifically by @Copilot in #1366
- 🐛 fix: report error for undefined field access on closed records by @harehare in #1365
- fix(mq-lsp): remove useless
.into()conversion causing clippy failure by @Copilot in #1383 - 🐛 fix(mq-check): handle union overloads with consistent return types by @harehare in #1386
- 🐛 fix(mq-check): correct deferred overload replacement and add regression test by @harehare in #1391
- fix(mq-lang): unify TextEdit to character offsets, update incremental parser and tests by @harehare in #1405
- 🐛 fix: enhance type inference for union and tuple types, improve error handling in type checker by @harehare in #1406
- 🐛 fix: correct symbol handling, index_by test, and inlay hints logic by @harehare in #1421
Refactoring & Performance
- ♻️ refactor(mq-check): extract union_members_consistent_return into standalone helper by @Copilot in #1387
- perf(mq-check): replace Vec with FxHashMap for deferred_overloads by @Copilot in #1393
- 🔧 refactor(config): update type check configuration keys by @harehare in #1392
- ♻️ refactor(mq-check): extract get_non_keyword_children, add error helpers, improve type formatting by @harehare in #1399
- Remove module includes by @harehare in #1414
Tests & Documentation
- Add tests for Union(Array(T), None) index access in type checker by @Copilot in #1407
- Increase test coverage for mq-check unification logic by @harehare in #1419
- Add comprehensive tests to mq-check by @harehare in #1420
- 📝 Update README.md by @harehare in #1422
Build & Dependencies
- 👷 ci: remove paths-filter and simplify workflow dependencies by @harehare in #1385
- build(deps-dev): bump @types/node from 25.3.2 to 25.3.3 in /editors/vscode by @dependabot[bot] in #1374
- build(deps-dev): bump oxlint from 1.50.0 to 1.51.0 in /editors/vscode by @dependabot[bot] in #1375
- build(deps): bump tokio-macros from 2.6.0 to 2.6.1 by @dependabot[bot] in #1376
- build(deps): bump fantoccini from 0.22.0 to 0.22.1 by @dependabot[bot] in #1377
- build(deps-dev): bump oxlint from 1.50.0 to 1.51.0 in /packages/mq-web by @dependabot[bot] in #1378
- build(deps-dev): bump oxlint from 1.50.0 to 1.51.0 in /packages/mq-playground by @dependabot[bot] in #1379
- build(deps): bump tokio from 1.49.0 to 1.50.0 by @dependabot[bot] in #1381
- build(deps): bump react-icons from 5.5.0 to 5.6.0 in /packages/mq-playground by @dependabot[bot] in #1382
- build(deps): bump smol_str from 0.3.5 to 0.3.6 by @dependabot[bot] in #1388
- build(deps): bump docker/login-action from 3 to 4 by @dependabot[bot] in #1389
- build(deps): bump docker/metadata-action from 5 to 6 by @dependabot[bot] in #1395
- build(deps): bump docker/setup-buildx-action from 3 to 4 by @dependabot[bot] in #1396
- build(deps): bump docker/build-push-action from 6 to 7 by @dependabot[bot] in #1403
- build(deps): bump which from 8.0.0 to 8.0.1 by @dependabot[bot] in #1402
- build(deps-dev): bump @types/node from 25.3.3 to 25.3.5 in /editors/vscode by @dependabot[bot] in #1401
- build(deps): bump libc from 0.2.182 to 0.2.183 by @dependabot[bot] in #1411
- build(deps): bump which from 8.0.1 to 8.0.2 by @dependabot[bot] in #1410
- build(deps-dev): bump @types/node from 25.3.5 to 25.4.0 in /editors/vscode by @dependabot[bot] in #1409
- build(deps-dev): bump oxlint from 1.51.0 to 1.52.0 in /packages/mq-playground by @dependabot[bot] in #1418
- build(deps-dev): bump oxlint from 1.51.0 to 1.52.0 in /packages/mq-web by @dependabot[bot] in #1417
- build(deps-dev): bump oxlint from 1.51.0 to 1.52.0 in /editors/vscode by @dependabot[bot] in #1415
- build(deps-dev): bump @types/vscode from 1.108.1 to 1.110.0 in /editors/vscode by @dependabot[bot] in #1416
Full Changelog: v0.5.17...v0.5.18
v0.5.17
Immutable
release. Only release title and notes can be modified.
What's Changed
- ✨ feat: add slugify function by @harehare in #1357
- ✨ feat: add typechecker crate by @harehare in #850
- ✨ feat(mq-lang): add =~ regex match operator and is_regex_match builtin by @harehare in #1305
- ✨ feat(lang): add left shift and right shift token kinds and operations by @harehare in #1315
- ✨ feat(lang): support array operands for shift operators (<<, >>) by @harehare in #1319
- ✨ feat: add conversion operators by @harehare in #1320
- ✨ feat(cli): add
__FILE_NAME__and__FILE_STEM__env vars for file context by @harehare in #1343 - ✨ feat(csv): add PSV (Pipe-Separated Values) support and tests by @harehare in #1355
- ✨ feat(mq-lang): Add bsearch function and tests by @harehare in #1353
- 🐛 fix(mq-lang): fix incorrect #[cfg(unix)] to #[cfg(not(windows))] inconvert.rs by @harehare in #1336
- 🐛 Fix: handle empty result values in mq_eval function by @harehare in #1348
- 📝 docs(skills): add HTML input selector guidance to processing-markdown skill by @harehare in #1356
- 👷 ci: add cargo publish workflow by @harehare in #1335
- 🔥 chore: remove mq-python crate from workspace by @harehare in #1349
Full Changelog: v0.5.16...v0.5.17
v0.5.16
Immutable
release. Only release title and notes can be modified.
What's Changed
- ✨ feat(mq-lang): add ltrim and rtrim builtins for string/markdown whitespace trimming by @harehare in #1281
- ✨ feat(section): Add section operations and examples by @harehare in #1283
- ✨ feat(playground): show execution time in footer by @harehare in #1284
- ✨ feat(table): add set_align and test for table alignment by @harehare in #1290
- ✨ feat(table): add to_csv function and update docs by @harehare in #1296
- ✨ feat(mq-lang): add base64url/base64urld builtins and tests by @harehare in #1297
- ✨ feat(lsp): add range formatting support and tests by @harehare in #1298
- 🐛 fix(mq-lang): improve NotDefined error token handling in eval.rs by @harehare in #1289
- 🐛 fix(mq-markdown): correct newline rendering before tables by @harehare in #1277
- 🐛 fix(markdown): normalize excessive blank lines in Markdown rendering by @harehare in #1300
- 📦 build: update dependencies and documentations by @harehare in #1288
Full Changelog: v0.5.15...v0.5.16
v0.5.15
Immutable
release. Only release title and notes can be modified.
What's Changed
Features
- ✨ feat: extract mq-check and mq-docs into standalone crates by @harehare in #1262
- ✨ feat(cli): Add executable file check for mq-* subcommands by @harehare in #1265
- ✨ feat(mq-lang): add capture builtin function for regex named group extraction by @harehare in #1272
Refactoring
- ♻️ refactor(vscode): migrate linter from ESLint to oxlint by @harehare in #1263
- ♻️ chore: remove mq-check and mq-docs crates by @harehare in #1271
Documentation
- 📝 docs(processing-markdown): add skills by @harehare in #1273
- 📝 docs: document external subcommands and update CLI docs by @harehare in #1275
Full Changelog: v0.5.14...v0.5.15
v0.5.14
Immutable
release. Only release title and notes can be modified.
Features
- feat(lsp): add file-io feature to mq-lang dependency by @harehare in #1205
- feat: support variadic function arguments and enhance error handling by @harehare in #1214
- feat: add Zed editor extension by @harehare in #1217
- feat(lsp): improve goto definition to navigate to correct source files by @harehare in #1221
- feat(lang): add table module for extracting table structures by @harehare in #1222
- feat(table): add map_rows, filter_rows, and sort_rows functions by @harehare in #1230
- feat(parser): support index assignment for arrays and dicts by @harehare in #1235
- feat(selector): add recursive descent selector (..) by @harehare in #1234
- feat(table): add filter_tables function for filtering tables by predicate by @harehare in #1238
- feat(color): add color output support and configuration options by @harehare in #1242
- feat(run): support PATH lookup for external subcommands by @harehare in #1253
Bug Fixes
- fix(formatter): handle selector attributes in assignment expressions by @harehare in #1228
- fix(eval): propagate actual module error instead of always returning NotFound by @harehare in #1232
Refactoring
- Move debug function to builtin.mq by @harehare in #1218
- refactor(cst): deduplicate parser with shared helpers and improve Trivia::comment API by @harehare in #1231
- refactor(lang): organize constants into submodules and improve builtin variable scoping by @harehare in #1236
- refactor(playground): replace ESLint with oxlint by @harehare in #1254
Full Changelog: v0.5.13...v0.5.14