commits on main

2026-09-01

39d31c5d Mary chore: use terser for bundle minification

chore: use terser for bundle minification

open commit browse files
51578f5d Mary chore: upgrade dependencies

chore: upgrade dependencies

open commit browse files
82442302 Mary fix: close floating popups during navigation

fix: close floating popups during navigation

open commit browse files

2026-08-30

95f2b363 Mary fix: send valid video metadata hints when starting an upload

fix: send valid video metadata hints when starting an upload

open commit browse files
57f31dc5 Mary refactor: prioritize handles across the interface

refactor: prioritize handles across the interface

open commit browse files
0393ac84 Mary feat: preview Tangled strings in composer

feat: preview Tangled strings in composer

open commit browse files
76577b3d Mary fix: keep Tangled string previews at a fixed height

fix: keep Tangled string previews at a fixed height

open commit browse files
efbefd1f Mary fix: align post placeholder content

fix: align post placeholder content

open commit browse files
22a4905b Mary fix: correct regressions from the list state component migration

fix: correct regressions from the list state component migration

open commit browse files
d4d2688c Mary refactor!: retire ListFooter and ListMaybePlaceholder

refactor!: retire ListFooter and ListMaybePlaceholder

open commit browse files
34d6dc21 Mary refactor: move the remaining tail-only lists onto ListTail

refactor: move the remaining tail-only lists onto ListTail

open commit browse files
fea2565a Mary refactor: let dialog lists compose their own pagination tail

refactor: let dialog lists compose their own pagination tail

open commit browse files
496f05c2 Mary refactor: migrate the profile collection lists to the new list state components

refactor: migrate the profile collection lists to the new list state components

open commit browse files
1fbb5acb Mary refactor: migrate messages and notifications lists to the new list state components

refactor: migrate messages and notifications lists to the new list state components

open commit browse files
a8df7417 Mary refactor: migrate list-replacing screens to the new list state components

refactor: migrate list-replacing screens to the new list state components

open commit browse files

2026-08-29

ed271434 Mary refactor: migrate profile feedgens to the new list state components

refactor: migrate profile feedgens to the new list state components

drops the sentinel-row machinery in favour of the whole-surface components, and fixes two defects it was hiding: `isEmpty` is true whenever there is no data, failure included, so an initial error pushed `ERROR_ITEM` and then `EMPTY` — the screen told the user the request had failed and that they had no feeds, stacked. it now renders a single `ListError`. `LOAD_MORE_ERROR_ITEM` was unreachable: its branch required `!isEmpty`, which implies `data?.pages` is truthy, so the preceding branch always won. `LoadMoreRetryBtn` never rendered here. also drops two inert props on the way past. `hasNextPage` is only read as `!hasNextPage && showEndMessage`, and `showEndMessage` was never passed; `height={180}` restated the css default. the footer additionally rendered during the initial load, since `isEmpty` is gated on `!isPending`, putting a bordered 180px box under the skeleton. Claude-Session: https://claude.ai/code/session_01DZRW2fBuJdbQENW4Rq9fy8

open commit browse files
7a1b320b Mary fix: stop skeleton card rows stretching to fill leftover space

fix: stop skeleton card rows stretching to fill leftover space

open commit browse files
ad067679 Mary refactor: split list loading and error states into distinct components

refactor: split list loading and error states into distinct components

open commit browse files
f20707e3 Mary fix: handle query network failures

fix: handle query network failures

open commit browse files
ef67ceeb Mary fix: expire persisted query cache entries

fix: expire persisted query cache entries

open commit browse files
614e06e5 Mary refactor: persist queries individually

refactor: persist queries individually

open commit browse files
ebb1a28b Mary fix: keep history header visible while scrolling

fix: keep history header visible while scrolling

open commit browse files
e5708adf Mary fix: prevent tangled embed footer overflow

fix: prevent tangled embed footer overflow

open commit browse files
2ae28537 Mary refactor: configure scroll-away lead-in

refactor: configure scroll-away lead-in

open commit browse files
32addfc2 Mary refactor: parse dates once in isStatusStillActive

refactor: parse dates once in isStatusStillActive

open commit browse files
8644b701 Mary fix: keep tangled string embed height on load failure

fix: keep tangled string embed height on load failure

Claude-Session: https://claude.ai/code/session_0138rjvapq5AKYNuvdnZYrMG

open commit browse files

2026-08-28

81a8d65c Mary chore: make Vite bundled dev mode work again

chore: make Vite bundled dev mode work again

open commit browse files
c42621f3 Mary chore: upgrade dependencies

chore: upgrade dependencies

open commit browse files
0dce3329 Mary chore: use bundled dev mode by default

chore: use bundled dev mode by default

open commit browse files
b2402494 Mary chore: upgrade to pnpm 12

chore: upgrade to pnpm 12

open commit browse files
9075f418 Mary feat: embed Tangled code files

feat: embed Tangled code files

open commit browse files
c6787d04 Mary feat: give the starter pack page a scroll-away header

feat: give the starter pack page a scroll-away header

open commit browse files
c88ad192 Mary fix: let header content shrink instead of overflowing

fix: let header content shrink instead of overflowing

open commit browse files
554f35e6 Mary feat: move the profile overflow menu into the sticky header

feat: move the profile overflow menu into the sticky header

open commit browse files
09a056eb Mary docs: advance the reviewed upstream tip to 5eb5ac4800

docs: advance the reviewed upstream tip to 5eb5ac4800

open commit browse files
d0ccb0b6 Mary refactor: read the message draft through an effect event

refactor: read the message draft through an effect event

the render-synced ref was doing what useEffectEvent is for. same behaviour — the cleanup still sees the last committed message — with one fewer effect, and it matches how the rest of the codebase reaches non-reactive values from an effect.

open commit browse files
33bcfdf2 Mary refactor: hoist finally blocks out of the way of React Compiler

refactor: hoist finally blocks out of the way of React Compiler

React Compiler cannot lower a `try` with a `finalizer` clause, so it silently skipped optimizing every component and hook containing one — 13 sites, confirmed by running the compiler over `src/`. none of the guarded bodies return or rethrow, so running the cleanup after the `try`/`catch` is equivalent. three of the sites were empty `finally {}` leftovers and are just gone.

open commit browse files
9cda03b8 Mary fix: check every loaded page before calling a list empty

fix: check every loaded page before calling a list empty

these lists only looked at the first page, so a profile whose first page of feeds, lists, or starter packs came back empty rendered the empty state even after later pages loaded.

open commit browse files
326eaa2e Mary fix: stop feeds from stalling on filtered-out pages

fix: stop feeds from stalling on filtered-out pages

a feed gave up whenever a page's items were all filtered out client-side, and `CustomFeedAPI` suppressed the cursor on an empty page, so a feed could report itself exhausted while more pages existed upstream. one empty page is the wrong predicate for exhaustion — the appview legitimately returns an empty page with a cursor when hydration drops everything. extract the paginator both feeds had copied into `useAutoPagination`, and make exhaustion the concern of `getNextPageParam`, which is where the next page param is minted and where a cursor the server has already served can be recognised. `hasNextPage` then tells the truth for manual scrolling too, not just for the auto-paginator.

open commit browse files
acd3c472 Mary chore: use own vanilla extract plugin

chore: use own vanilla extract plugin

open commit browse files

2026-08-27

b2b1ae86 Mary refactor: tend to the profile search page

refactor: tend to the profile search page

open commit browse files
f31e0281 Mary chore: allow bundled dev to work

chore: allow bundled dev to work

open commit browse files
b3d2bb52 Mary refactor: move layered helper out of layers.css.ts

refactor: move layered helper out of layers.css.ts

open commit browse files
30cd2de5 Mary fix: hide empty profile collection placeholders

fix: hide empty profile collection placeholders

open commit browse files
33ba0976 Mary fix: align scroll-away border with header edge

fix: align scroll-away border with header edge

open commit browse files
646382fe Mary fix: state header edge slots explicitly

fix: state header edge slots explicitly

open commit browse files
2b31fcd1 Mary feat: add scroll-away headers

feat: add scroll-away headers

open commit browse files
74cb1247 Mary chore: avoid running build

chore: avoid running build

open commit browse files
23eb34af Mary fix: show bottom border on the list header when no tab bar follows

fix: show bottom border on the list header when no tab bar follows

open commit browse files

2026-08-26

93beae7a Mary chore: advance upstream marker

chore: advance upstream marker

open commit browse files
older commits →