Skip to content

Releases: harehare/mq

v0.5.26

14 Apr 13:01
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

✨ Features

  • ✨ feat(builtin): add from_html builtin function by @harehare in #1556
  • ✨ feat(yaml): add to_front_matter function and update YAML tests by @harehare in #1561
  • ✨ feat(mq-lang): add _diff builtin and enhance assert_eq with colored diff output by @harehare in #1567
  • ✨ feat(mq-test): add standalone test runner binary by @harehare in #1574
  • ✨ feat(playground): improve UX with toast notifications, examples modal, and diagnostics by @harehare in #1584
  • ✨ feat(mq-node): implement mq-node for Node.js using mq-wasm with tests by @harehare in #1573
  • ✨ feat(mq-test): add [test] annotation and refactor tests with rstest by @harehare in #1586
  • ✨ feat(mq-playground): enhance mobile UI with icon-only buttons and file tree support by @harehare in #1588
  • ✨ feat(builtin): add chunks and chunk_by functions by @harehare in #1591

🐛 Bug Fixes

  • 🐛 fix(macro-expand): use call site token ID instead of hardcoded TokenId by @harehare in #1566
  • 🐛 fix(mq-check): correct return type of to_markdown and to_mdx to array(Markdown) by @harehare in #1577
  • 🐛 fix(playground): fix theme switching not working in production build by @harehare in #1579
  • 🐛 fix(mq-run): use binary placeholder in binstall pkg-url template by @harehare in #1585
  • 🐛 fix(mq-markdown): prevent GFM autolink literal from nesting links by @harehare in #1589

🛠 Refactoring & Style

  • refactor: migrate installation to XDG Base Directory Specification by @minhdqdev in #1569
  • style: apply cargo fmt by @harehare in #1576
  • Format code using cargo fmt by @harehare in #1575
  • 💄 style(playground): add icons to action buttons and improve UI by @harehare in #1578
  • 📦 build(mq-nodejs): rename package from mq-node to mq-nodejs by @harehare in #1590

📝 Documentation

📦 Build & Dependencies

  • build(deps): bump the dependencies group with 2 updates by @dependabot[bot] in #1554
  • build(deps): bump the dependencies group with 3 updates by @dependabot[bot] in #1553
  • build(deps-dev): bump the dependencies group in /packages/mq-playground with 2 updates by @dependabot[bot] in #1552
  • build(deps-dev): bump oxlint from 1.57.0 to 1.58.0 in /editors/vscode in the dependencies group by @dependabot[bot] in #1551
  • build(deps): bump taiki-e/install-action from 2.74.0 to 2.75.0 in the dependencies group by @dependabot[bot] in #1559
  • build(deps-dev): bump esbuild from 0.27.4 to 0.27.7 in /editors/vscode in the dependencies group by @dependabot[bot] in #1558
  • build(deps): bump the dependencies group with 2 updates by @dependabot[bot] in #1565
  • build(deps): bump the dependencies group with 2 updates by @dependabot[bot] in #1564
  • build(deps-dev): bump baseline-browser-mapping from 2.10.13 to 2.10.14 in /packages/mq-playground in the dependencies group by @dependabot[bot] in #1563
  • build(deps-dev): bump the dependencies group in /editors/vscode with 2 updates by @dependabot[bot] in #1562
  • build(deps): bump taiki-e/install-action from 2.75.1 to 2.75.3 in the dependencies group by @dependabot[bot] in #1568
  • build(deps): bump the dependencies group with 4 updates by @dependabot[bot] in #1572
  • build(deps-dev): bump baseline-browser-mapping from 2.10.14 to 2.10.15 in /packages/mq-playground in the dependencies group by @dependabot[bot] in #1571
  • build(deps): bump the dependencies group with 5 updates by @dependabot[bot] in #1595
  • build(deps-dev): bump oxlint from 1.58.0 to 1.59.0 in /packages/mq-web in the dependencies group by @dependabot[bot] in #1593
  • build(deps): bump the dependencies group in /packages/mq-playground with 5 updates by @dependabot[bot] in #1594
  • build(deps-dev): bump the dependencies group in /editors/vscode with 2 updates by @dependabot[bot] in #1592
  • build(deps): bump rand from 0.9.2 to 0.9.4 by @dependabot[bot] in #1596

New Contributors


Full Changelog: v0.5.25...v0.5.26

v0.5.25

06 Apr 13:35
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

What's Changed

✨ New Features

  • ✨ feat(toml): replace mq-based TOML parser with native Rust implementation by @harehare in #1524
  • ✨ feat(playground): add settings dialog with vim mode and theme support by @harehare in #1528
  • ✨ feat(playground): add babel plugin for React compiler support by @harehare in #1529
  • ✨ feat(mq-lang): Add task selector by @harehare in #1537
  • ✨ feat(selector): add .todo and .done selectors for task list items by @harehare in #1538
  • ✨ feat(mq-lang): add md5 and sha256 hash builtin functions by @harehare in #1543
  • ✨ feat(mq-lang): add is_callout function by @harehare in #1544
  • ✨ feat(resolver): add $HOME/.config/mq to default module search paths by @harehare in #1549
  • ✨ feat(mq-lang): add or-pattern support in match expressions by @harehare in #1542

♻ Refactor & Improvements

  • ♻ refactor(mq-lang): add opening delimiter location to unclosed bracket errors by @harehare in #1514
  • ♻ refactor(mq-run): extract InputFormat::from_extension method by @harehare in #1517
  • 👷 ci: pin GitHub Actions to full commit SHAs by @harehare in #1525
  • 📦 build(mq-web): migrate from npm to pnpm by @harehare in #1533
  • ♻️ refactor(mq-lang): change And/Or AST nodes to n-ary operand lists by @harehare in #1539

🐛 Fixes

  • 🐛 fix(mq-markdown): preserve HTML comments in markdown conversion by @harehare in #1530
  • 🐛 fix(mq-lang): extract selector parsing into dedicated function by @harehare in #1550
  • 🐛 fix(docs): fix logo alignment and button widths in landing page by @harehare in #1523

💄 Style & Documentation

  • 💄 style(docs): redesign landing page by @harehare in #1516
  • 💄 style(docs): add custom theme to demo and update demo gif by @harehare in #1518

📦 Dependency Updates

  • build(deps-dev): bump the dependencies group in /editors/vscode with 2 updates by @dependabot[bot] in #1519
  • build(deps): bump proptest from 1.10.0 to 1.11.0 in the dependencies group by @dependabot[bot] in #1520
  • build(deps-dev): bump the dependencies group in /packages/mq-web with 2 updates by @dependabot[bot] in #1521
  • build(deps-dev): bump typescript from 5.9.3 to 6.0.2 in /packages/mq-playground in the dependencies group by @dependabot[bot] in #1522
  • build(deps): bump taiki-e/install-action from 2.70.3 to 2.71.1 in the dependencies group by @dependabot[bot] in #1532
  • build(deps): bump the dependencies group with 2 updates by @dependabot[bot] in #1531
  • build(deps): bump the dependencies group with 2 updates by @dependabot[bot] in #1536
  • build(deps): bump rustc-hash from 2.1.1 to 2.1.2 in the dependencies group by @dependabot[bot] in #1535
  • build(deps-dev): bump baseline-browser-mapping from 2.10.11 to 2.10.12 in /packages/mq-playground in the dependencies group by @dependabot[bot] in #1534
  • build(deps): bump minimatch in /editors/vscode by @dependabot[bot] in #1547
  • build(deps): bump brace-expansion in /editors/vscode by @dependabot[bot] in #1546
  • build(deps-dev): bump picomatch from 2.3.1 to 2.3.2 in /editors/vscode by @dependabot[bot] in #1545
  • build(deps): bump glob from 10.4.5 to 10.5.0 in /editors/vscode by @dependabot[bot] in #1548

Full Changelog: v0.5.24...v0.5.25

v0.5.24

28 Mar 13:33
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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

24 Mar 12:57
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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

22 Mar 13:32
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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

18 Mar 14:13
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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

12 Mar 13:40
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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

11 Mar 13:45
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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

28 Feb 13:44
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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

19 Feb 13:31
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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