Skip to content
blastbeat
Changelog

What changed, Release by Release.

The app and this Site are released apart, so each keeps its own list. Newest first.

The app

app.blastbeat.app: the API and the web app.

0.4.0

Features

  • web: TipLayer reads data-tip without touching the control, and a spec holds every icon-only button to an aria-label2f626bb
  • web: add the Capture page, its Settings row and the capture Quick Add sourcef9308ce
  • api: count the Capture page as an Analytics route49a9776
  • api: add capture to the Analytics via vocabularycaf0b49
  • desktop: open Capture from a system-wide shortcut or blastbeat --capturea6ac203
  • api: answer the body of a Note made from a Thread, and prefill the dialogs from it67362d3

Fixes

  • web: close Capture when Open shows the Task, and leave no confirmation up for its next opening9af6f23
  • web: a view's headers stay off when only the earlier view-headers setting says so8ea3c8a
  • web: lay the Accent swatches out in the radiogroup itself, not display: contentsdae6c73
  • web: EntityGlyph prefers the short-list icon and draws its emoji in a size-square box again1e1bca4
  • web: usePillInset follows its element's size instead of rewriting the inset on every render083e4f7
  • web: let the Calendar's Day view fill the grid like Weekbfac0e6
  • platform: keep Upcoming's weekend and Next week buckets from starting on Tomorrowfdb7429
  • web: clamp every Vim Normal-mode selection off hidden markers in its own transactiond62217c
  • web: retry a failed Glyph catalog load, and fetch only the icon shards a result needsdeee0fa
  • web: undo and redo from anywhere in a table, and keep structural edits their own history step07e93dd
  • web: keep the Properties options in the widget so narrow screens and Focus reach them8d135da
  • web: keep an explicit Text type through a reopen by quoting pinned Text values4da1070
  • mobile: date a Goal's since from the day the API says it was created009cd30
  • api: count a view's Tasks and its Sprint from the one day the read settledae2abc3
  • platform: cut ranges without toReversed, which Hermes may lack, and strip ES2023 array copies in Jest7e4a92f
  • api: recover a panicking forward inside Telemetry.Go, so every caller is protectedab239e8
  • api: fold a Filter's title and Project matches as Task search does02c0c76

Other

  • chore(desktop): regenerate the Capture bindings after its comment trim002f8f7
  • test(web): wait for a change's writes before the reload that checks itd175743
  • refactor(web): Capture's two centred notices share one frame, and LAYOUTS says no more than it holdsa49fdb1
  • refactor(web): Capture opens a Task at the Inbox path without building a URL to strip back0b864d2
  • refactor(web): FloatingAdd reads the lent action directly67a7bef
  • refactor(platform): drop escapeCheckboxLines and addressLine, trim paperAccent's comment, unexport STRICT_NUMBER_RE9541a6e
  • docs(api): name Notes in the catalog-wide Glyph commentcbb85ad
  • refactor(api): share the delete loop between DeletePrefix and DeleteOlder, and read the clock format once in mailtriage4a0ea3c
  • test(web): share Task and Note fixtures between the specs that repeated them998d919
  • refactor(ui): say what the code does in comments, not where the design came from8b43139
  • refactor(web): say what the code does in comments, not where the design came fromda9e514
  • refactor(web): settings choices use Segmented's field variant, and Accent, Theme and Density share RadioCards19e5e1e
  • refactor(web): one tint and ink in lib/colors for Calendar, Habit, Timeline bar and Subtask strip colorse724c45
  • refactor(web): glyphOf normalizes a Project's Glyph for EntityGlyph and its picker, the picker is EntityGlyphPicker, and the Task card's tips are Tooltips4c6dbbe
  • refactor(ui): one CheckTick in packages/ui for the Site's marks and ticks, groundProps in one shape and one lede utilitydb5f35b
  • refactor(ui): drop the unused Button sizes, fold header into default and icon-header into icon, and compose the Site's CtaLink from buttonVariantse0260a8
  • refactor(ui): name the hover tint once as bg-base-tint and drop dead ghost-stack CSS and the toast kind markerebfe784
  • refactor(web): pages declare the floating add and docking, Search keeps one place, and the open-Task helpers mergeb76df1f
  • refactor(web): one stored-choice hook, one Layout hook, ListAlignSync once, and a smaller Display menu8c3fea0
  • refactor(web): page Done Tasks with one infinite query per placee0bff7f
  • docs: match the Site's density and Filters text and the Display tip to the app0c68076
  • style(web): format the Wikilink opener55e230d
  • refactor(web): split the table grips and column resize out of the table editor89d9978
  • refactor(web): scroll the new Folder row into view through useSlide9286cd5
  • refactor(platform): share the boolean, safe-number and ISO-date rules between the Frontmatter parse and Property inference1172759
  • refactor(web): one reactIslandHost for the table and Properties widgets5141e89
  • perf(web): walk only the list items inside the drawn range when closing a loose list's gaps2f294f5
  • refactor(web): one Wikilink opener with the latest-wins guard for the Note reader and Task description5041232
  • build: pin daisyui, @phosphor-icons/react, next and eslint-config-next in the catalog, and narrow the decode-uri-component override to query-string 7e24fa1a
  • refactor(web): keep Today's day parts and group spans in web, whose view alone uses theme2c1bf8
  • refactor(platform): share the Glyph icon names between web and iOS, and drop PROJECT_ICONSc1ef628
  • refactor(platform): one Paper surfaces table, held to paper.css, for the Site, web, iOS, the widget and the mail layoute19b1db
  • refactor(platform): export paperPrimary, comment paperAccent's constants and send the widget its accent ink0b5419e
  • refactor(api): list an object store once per call, filtering inlinef67fb66
  • refactor(api): save a Note's Glyph in its update, not a second statement0601bbb
  • refactor(api): one catalog Glyph Patch constructor, and the Glyph comments that went stalea6794cd
  • refactor(api): read each Thread's Triage link once when triaging056639f

0.3.0

Features

  • api: report the Release at /api/version and serve the Instance's API reference at /api/docs323ecda
  • site: count the changelog page's views0a74e95

Fixes

  • api: start the IMAP back-off's wait before reporting it, so its test waits on the state, not the clock4923eab

Other

  • build(infra): pull the private Release images on the droplet with a read-only GHCR tokenf4d0986
  • ci: give the heavy runner's daemon 24 CPUs and mobile's Jest four workers, which kept its tests in their timeouts2ce3a44
  • test: give the browser specs a window larger than any viewport they set, so a spec's frame never sits off the page24e793f
  • docs: describe the Release pipeline, the heavy runner and the remote state882253a
  • ci: plan CI's jobs, run the browser tests, and make Releases and Deploys from merged Release PRs59440f0

The Site

blastbeat.app: these product and docs pages.

0.3.0

Features

  • api: count the Capture page as an Analytics route49a9776
  • api: add capture to the Analytics via vocabularycaf0b49
  • api: answer the body of a Note made from a Thread, and prefill the dialogs from it67362d3

Fixes

  • platform: keep Upcoming's weekend and Next week buckets from starting on Tomorrowfdb7429
  • web: keep an explicit Text type through a reopen by quoting pinned Text values4da1070
  • mobile: date a Goal's since from the day the API says it was created009cd30
  • platform: cut ranges without toReversed, which Hermes may lack, and strip ES2023 array copies in Jest7e4a92f

Other

  • style(marketing): sort the docs page's lede classes as Prettier now orders them2b8fe01
  • refactor(marketing): name the CtaLink size and variant fields, and leave the lede's margin to preflight345c0f6
  • refactor(platform): drop escapeCheckboxLines and addressLine, trim paperAccent's comment, unexport STRICT_NUMBER_RE9541a6e
  • refactor(ui): say what the code does in comments, not where the design came from8b43139
  • refactor(marketing): say what the code does in comments, not where the design came fromf5e22f4
  • refactor(marketing): use --shadow-overlay and the palette tokens in place of repeated shadows and fixed hexesed4a7c8
  • refactor(ui): one CheckTick in packages/ui for the Site's marks and ticks, groundProps in one shape and one lede utilitydb5f35b
  • refactor(ui): drop the unused Button sizes, fold header into default and icon-header into icon, and compose the Site's CtaLink from buttonVariantse0260a8
  • refactor(marketing): drop the unused frame url prop, appBarUrl and the .glow CSS19e8546
  • refactor(ui): name the hover tint once as bg-base-tint and drop dead ghost-stack CSS and the toast kind markerebfe784
  • docs: match the Site's density and Filters text and the Display tip to the app0c68076
  • refactor(platform): share the boolean, safe-number and ISO-date rules between the Frontmatter parse and Property inference1172759
  • docs: describe Capture and the Capture shortcuta6ad901
  • build: pin daisyui, @phosphor-icons/react, next and eslint-config-next in the catalog, and narrow the decode-uri-component override to query-string 7e24fa1a
  • refactor(web): keep Today's day parts and group spans in web, whose view alone uses theme2c1bf8
  • refactor(platform): share the Glyph icon names between web and iOS, and drop PROJECT_ICONSc1ef628
  • refactor(platform): one Paper surfaces table, held to paper.css, for the Site, web, iOS, the widget and the mail layoute19b1db
  • refactor(platform): export paperPrimary, comment paperAccent's constants and send the widget its accent ink0b5419e

0.2.0

Features

  • api: report the Release at /api/version and serve the Instance's API reference at /api/docs323ecda
  • site: count the changelog page's views0a74e95
  • site: add a changelog page built from the Release changelogs0114f0a

Other

  • ci: give the heavy runner's daemon 24 CPUs and mobile's Jest four workers, which kept its tests in their timeouts2ce3a44
  • test: give the browser specs a window larger than any viewport they set, so a spec's frame never sits off the page24e793f