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-label
2f626bb - web: add the Capture page, its Settings row and the capture Quick Add source
f9308ce - api: count the Capture page as an Analytics route
49a9776 - api: add capture to the Analytics via vocabulary
caf0b49 - desktop: open Capture from a system-wide shortcut or blastbeat --capture
a6ac203 - api: answer the body of a Note made from a Thread, and prefill the dialogs from it
67362d3
Fixes
- web: close Capture when Open shows the Task, and leave no confirmation up for its next opening
9af6f23 - web: a view's headers stay off when only the earlier view-headers setting says so
8ea3c8a - web: lay the Accent swatches out in the radiogroup itself, not display: contents
dae6c73 - web: EntityGlyph prefers the short-list icon and draws its emoji in a size-square box again
1e1bca4 - web: usePillInset follows its element's size instead of rewriting the inset on every render
083e4f7 - web: let the Calendar's Day view fill the grid like Week
bfac0e6 - platform: keep Upcoming's weekend and Next week buckets from starting on Tomorrow
fdb7429 - web: clamp every Vim Normal-mode selection off hidden markers in its own transaction
d62217c - web: retry a failed Glyph catalog load, and fetch only the icon shards a result needs
deee0fa - web: undo and redo from anywhere in a table, and keep structural edits their own history step
07e93dd - web: keep the Properties options in the widget so narrow screens and Focus reach them
8d135da - web: keep an explicit Text type through a reopen by quoting pinned Text values
4da1070 - mobile: date a Goal's since from the day the API says it was created
009cd30 - api: count a view's Tasks and its Sprint from the one day the read settled
ae2abc3 - platform: cut ranges without toReversed, which Hermes may lack, and strip ES2023 array copies in Jest
7e4a92f - api: recover a panicking forward inside Telemetry.Go, so every caller is protected
ab239e8 - api: fold a Filter's title and Project matches as Task search does
02c0c76
Other
- chore(desktop): regenerate the Capture bindings after its comment trim
002f8f7 - test(web): wait for a change's writes before the reload that checks it
d175743 - refactor(web): Capture's two centred notices share one frame, and LAYOUTS says no more than it holds
a49fdb1 - refactor(web): Capture opens a Task at the Inbox path without building a URL to strip back
0b864d2 - refactor(web): FloatingAdd reads the lent action directly
67a7bef - refactor(platform): drop escapeCheckboxLines and addressLine, trim paperAccent's comment, unexport STRICT_NUMBER_RE
9541a6e - docs(api): name Notes in the catalog-wide Glyph comment
cbb85ad - refactor(api): share the delete loop between DeletePrefix and DeleteOlder, and read the clock format once in mailtriage
4a0ea3c - test(web): share Task and Note fixtures between the specs that repeated them
998d919 - refactor(ui): say what the code does in comments, not where the design came from
8b43139 - refactor(web): say what the code does in comments, not where the design came from
da9e514 - refactor(web): settings choices use Segmented's field variant, and Accent, Theme and Density share RadioCards
19e5e1e - refactor(web): one tint and ink in lib/colors for Calendar, Habit, Timeline bar and Subtask strip colors
e724c45 - refactor(web): glyphOf normalizes a Project's Glyph for EntityGlyph and its picker, the picker is EntityGlyphPicker, and the Task card's tips are Tooltips
4c6dbbe - refactor(ui): one CheckTick in packages/ui for the Site's marks and ticks, groundProps in one shape and one lede utility
db5f35b - refactor(ui): drop the unused Button sizes, fold header into default and icon-header into icon, and compose the Site's CtaLink from buttonVariants
e0260a8 - refactor(ui): name the hover tint once as bg-base-tint and drop dead ghost-stack CSS and the toast kind marker
ebfe784 - refactor(web): pages declare the floating add and docking, Search keeps one place, and the open-Task helpers merge
b76df1f - refactor(web): one stored-choice hook, one Layout hook, ListAlignSync once, and a smaller Display menu
8c3fea0 - refactor(web): page Done Tasks with one infinite query per place
e0bff7f - docs: match the Site's density and Filters text and the Display tip to the app
0c68076 - style(web): format the Wikilink opener
55e230d - refactor(web): split the table grips and column resize out of the table editor
89d9978 - refactor(web): scroll the new Folder row into view through useSlide
9286cd5 - refactor(platform): share the boolean, safe-number and ISO-date rules between the Frontmatter parse and Property inference
1172759 - refactor(web): one reactIslandHost for the table and Properties widgets
5141e89 - perf(web): walk only the list items inside the drawn range when closing a loose list's gaps
2f294f5 - refactor(web): one Wikilink opener with the latest-wins guard for the Note reader and Task description
5041232 - build: pin daisyui, @phosphor-icons/react, next and eslint-config-next in the catalog, and narrow the decode-uri-component override to query-string 7
e24fa1a - refactor(web): keep Today's day parts and group spans in web, whose view alone uses them
e2c1bf8 - refactor(platform): share the Glyph icon names between web and iOS, and drop PROJECT_ICONS
c1ef628 - refactor(platform): one Paper surfaces table, held to paper.css, for the Site, web, iOS, the widget and the mail layout
e19b1db - refactor(platform): export paperPrimary, comment paperAccent's constants and send the widget its accent ink
0b5419e - refactor(api): list an object store once per call, filtering inline
f67fb66 - refactor(api): save a Note's Glyph in its update, not a second statement
0601bbb - refactor(api): one catalog Glyph Patch constructor, and the Glyph comments that went stale
a6794cd - refactor(api): read each Thread's Triage link once when triaging
056639f
0.3.0
Features
- api: report the Release at /api/version and serve the Instance's API reference at /api/docs
323ecda - site: count the changelog page's views
0a74e95
Fixes
- api: start the IMAP back-off's wait before reporting it, so its test waits on the state, not the clock
4923eab
Other
- build(infra): pull the private Release images on the droplet with a read-only GHCR token
f4d0986 - ci: give the heavy runner's daemon 24 CPUs and mobile's Jest four workers, which kept its tests in their timeouts
2ce3a44 - test: give the browser specs a window larger than any viewport they set, so a spec's frame never sits off the page
24e793f - docs: describe the Release pipeline, the heavy runner and the remote state
882253a - ci: plan CI's jobs, run the browser tests, and make Releases and Deploys from merged Release PRs
59440f0
The Site
blastbeat.app: these product and docs pages.
0.3.0
Features
- api: count the Capture page as an Analytics route
49a9776 - api: add capture to the Analytics via vocabulary
caf0b49 - api: answer the body of a Note made from a Thread, and prefill the dialogs from it
67362d3
Fixes
- platform: keep Upcoming's weekend and Next week buckets from starting on Tomorrow
fdb7429 - web: keep an explicit Text type through a reopen by quoting pinned Text values
4da1070 - mobile: date a Goal's since from the day the API says it was created
009cd30 - platform: cut ranges without toReversed, which Hermes may lack, and strip ES2023 array copies in Jest
7e4a92f
Other
- style(marketing): sort the docs page's lede classes as Prettier now orders them
2b8fe01 - refactor(marketing): name the CtaLink size and variant fields, and leave the lede's margin to preflight
345c0f6 - refactor(platform): drop escapeCheckboxLines and addressLine, trim paperAccent's comment, unexport STRICT_NUMBER_RE
9541a6e - refactor(ui): say what the code does in comments, not where the design came from
8b43139 - refactor(marketing): say what the code does in comments, not where the design came from
f5e22f4 - refactor(marketing): use --shadow-overlay and the palette tokens in place of repeated shadows and fixed hexes
ed4a7c8 - refactor(ui): one CheckTick in packages/ui for the Site's marks and ticks, groundProps in one shape and one lede utility
db5f35b - refactor(ui): drop the unused Button sizes, fold header into default and icon-header into icon, and compose the Site's CtaLink from buttonVariants
e0260a8 - refactor(marketing): drop the unused frame url prop, appBarUrl and the .glow CSS
19e8546 - refactor(ui): name the hover tint once as bg-base-tint and drop dead ghost-stack CSS and the toast kind marker
ebfe784 - docs: match the Site's density and Filters text and the Display tip to the app
0c68076 - refactor(platform): share the boolean, safe-number and ISO-date rules between the Frontmatter parse and Property inference
1172759 - docs: describe Capture and the Capture shortcut
a6ad901 - build: pin daisyui, @phosphor-icons/react, next and eslint-config-next in the catalog, and narrow the decode-uri-component override to query-string 7
e24fa1a - refactor(web): keep Today's day parts and group spans in web, whose view alone uses them
e2c1bf8 - refactor(platform): share the Glyph icon names between web and iOS, and drop PROJECT_ICONS
c1ef628 - refactor(platform): one Paper surfaces table, held to paper.css, for the Site, web, iOS, the widget and the mail layout
e19b1db - refactor(platform): export paperPrimary, comment paperAccent's constants and send the widget its accent ink
0b5419e
0.2.0
Features
- api: report the Release at /api/version and serve the Instance's API reference at /api/docs
323ecda - site: count the changelog page's views
0a74e95 - site: add a changelog page built from the Release changelogs
0114f0a
Other
- ci: give the heavy runner's daemon 24 CPUs and mobile's Jest four workers, which kept its tests in their timeouts
2ce3a44 - test: give the browser specs a window larger than any viewport they set, so a spec's frame never sits off the page
24e793f