What's Changed
- test: run the suite on every platform, isolated, with visible skips by @mihailt in #781
- fix(files): an allowed directory reached through a symlink stays allowed by @mihailt in #770
- fix: one exitProcess(); server survives unhandled rejections by @mihailt in #758
- fix(security): validatePath checks where a dangling link writes by @mihailt in #759
- fix(telemetry): keep Error messages, redact whole paths; fix(ab-test): tolerate malformed experiments by @mihailt in #760
- fix(excel): status line, reversed and lowercase ranges, sparse sheets by @mihailt in #761
- fix(windows): retry blocked renames; one atomic-write implementation by @mihailt in #762
- fix(pdf): .pdf writes, Chrome on Windows, render cleanup, unsafe options ignored by @mihailt in #763
- feat: process and search tools return their facts to in-process callers (tool results unchanged) by @mihailt in #764
- fix(shell): one default and available-shell implementation by @mihailt in #765
- fix(process): 60 s wait cap, prompt detection, polling and eviction cost by @mihailt in #766
- fix(process): force_terminate and node:local end the whole process tree by @mihailt in #767
- fix(search): completion, total maxResults, time limits, ripgrep invocation, Office patterns by @mihailt in #768
- fix(config): wait for a config.json another version is still writing by @mihailt in #773
- fix(config): recover a config.json that stays damaged (#692) by @mihailt in #776
- fix(startup): load the Excel, PDF and DOCX packages on first use (#715) by @mihailt in #777
- test(remote): a restarted device reconnects after its token rotated (#695); the device passes on its environment by @mihailt in #778
- fix(search): a 200-result search stays bounded, however long its lines (#716) by @mihailt in #779
- fix(remote): device state: capability race, session without a device id, logout while running by @mihailt in #780
- feat(remote): report targeted Broadcast receipts by @ds-dcmpc in #794
- feat(remote): remote --report saves a diagnostics zip for support by @mihailt in #813
- feat(remote): remote --report in rc-v0.3.1, with its tests in the stack's structure by @mihailt in #820
- fix: update vulnerable production dependencies by @wonderwhy-er in #819
- Dependency security update (#819) for 0.3.1, with fixes for the two regressions it causes by @mihailt in #827
- Merge the 0.3.1 alpha line into main by @mihailt in #836
- fix: explicit MCP tool annotation booleans for OpenAI review by @wonderwhy-er in #828
- fix: make MCP metadata client-neutral by @wonderwhy-er in #746
- feat(remote): sampled Realtime reconnect and Presence diagnostics (P0) by @wonderwhy-er in #842
- fix(remote): stop client clock from rejecting pending calls by @wonderwhy-er in #800
- fix(remote): use PostgreSQL time for device database timestamps by @wonderwhy-er in #846
- fix(remote): prevent sustained Realtime reconnect stampedes (P1) by @wonderwhy-er in #844
- fix(deps): flatten argparse override so Release npm ci passes on npm 10 by @wonderwhy-er in #849
- test: make the suite pass on the Linux release runner by @mihailt in #850
New Contributors
Full Changelog: v0.2.52...v0.3.0