What's Changed
- chore(ci): mint the tap token with
client-idinstead of the deprecatedapp-idby @shahariaazam in #192 - fix(files): contain
files download --outputoutside the working directory (#191) by @vibexp-agent in #201 - ci: scope pages.yml write permissions to the deploy job (#190) by @vibexp-agent in #200
- ci: install with --frozen-lockfile so bun.lock is binding (#189) by @vibexp-agent in #199
- refactor(browser-auth): reduce cognitive complexity in token capture (#187) by @vibexp-agent in #197
- refactor(canvas): move 'canvas read' work into src/lib/canvas-read.ts (#186) by @vibexp-agent in #196
- ci: pass --ignore-scripts to every dependency install in CI (#188) by @vibexp-agent in #198
- refactor(mrkdwn): extract parseInline marker matching into helpers (#185) by @vibexp-agent in #195
- build: compile with Bun 1.4.1 --bytecode --splitting for faster startup (#137) by @vibexp-agent in #209
- feat: add messages list-drafts for active Slack drafts by @rafael-yure in #210
- refactor(saved): split enrichSavedItems into single-purpose helpers (#184) by @vibexp-agent in #194
- ci(release): take Homebrew checksums from checksums.txt and validate them (#211) by @vibexp-agent in #220
- ci: pin the pre-commit version installed in CI (#212) by @vibexp-agent in #221
- perf(parsers): remove super-linear backtracking from canvas and cURL regexes (#213) by @vibexp-agent in #222
- refactor(curl-parser): simplify the --data body-extraction regex (#214) by @vibexp-agent in #223
- refactor(formatter): replace nested ternary for conversation prefix (#215) by @vibexp-agent in #224
- test: parameterize execPath-based tests in version and updater suites (#216) by @vibexp-agent in #225
- refactor(clipboard): scope lexical declarations in the linux case block (#217) by @vibexp-agent in #226
- refactor(canvas-parser): drop unnecessary regex escape (#218) by @vibexp-agent in #227
- refactor(workspaces): route credentials through a SecretStore seam (#219) by @vibexp-agent in #235
- feat(auth): macOS Keychain SecretStore backend, opt-in, with verified migration (#219) by @vibexp-agent in #236
- refactor(slack-client): split fetchFile auth and redirect handling (#202) by @vibexp-agent in #237
- refactor(canvas-parser): extract formatListItem from convertListBlock (#203) by @vibexp-agent in #238
- refactor(auth): extract input resolution from the 'auth parse-curl' handler (#204) by @vibexp-agent in #239
- refactor(formatter): un-nest template literals, S4624 cleanup part 1 (#205) by @vibexp-agent in #240
- refactor(formatter): un-nest template literals, S4624 cleanup part 2 (#206) by @vibexp-agent in #241
- refactor(lib): mark constructor-only fields readonly (#208) by @vibexp-agent in #242
- ci(release): guard the checksum glob with -- (#228) by @vibexp-agent in #243
- refactor: remove unused imports, S1128 cleanup (#229) by @vibexp-agent in #244
- refactor: use String.raw for backslash-heavy literals, S7780 cleanup (#230) by @vibexp-agent in #245
- refactor: prefer replaceAll over global-regex replace, S7781 cleanup (#231) by @vibexp-agent in #246
- refactor: merge duplicate imports, S3863 cleanup (#232) by @vibexp-agent in #247
- refactor(web): combine consecutive starlightHead.push calls, S7778 cleanup (#233) by @vibexp-agent in #248
- fix(web): replace deprecated word-break: break-word with overflow-wrap: anywhere (#234) by @vibexp-agent in #249
- refactor: prefer RegExp.exec() over String.match() (#250) by @vibexp-agent in #257
- refactor: import Node built-ins with the node: protocol, S7772 cleanup (#251) by @vibexp-agent in #258
- refactor: prefer Number.parseInt/parseFloat/isNaN over globals, S7773 cleanup (#252) by @vibexp-agent in #259
- refactor: prefer .at(-1) over [length - 1], S7755 cleanup (#253) by @vibexp-agent in #260
- refactor: prefer optional chaining, S6582 cleanup (#254) by @vibexp-agent in #261
- refactor(types): drop redundant literal members from SavedItem.type (#255) by @vibexp-agent in #262
- refactor(updater): document the fail-soft catch in fetchLatestRelease (#256) by @vibexp-agent in #263
- refactor(conversations): use a Set for the unread --types filter (#265) by @vibexp-agent in #269
- refactor(cdp-client): iterate pending directly in rejectAll (#266) by @vibexp-agent in #270
- test: prefer toHaveLength in updater and formatter tests (#267) by @vibexp-agent in #271
- feat: send and delete native message drafts by @rafael-yure in #273
- chore: release v0.13.0 by @shaharia-lab-agent[bot] in #275
New Contributors
- @shaharia-lab-agent[bot] made their first contribution in #275
Full Changelog: v0.12.0...v0.13.0