Vite's built-in server.open fired before portless was reachable and
used the wrong hardcoded URL, so yarn start opened a 404. Disable
vite's open when PORTLESS_URL is set and explicitly open the
branch-scoped URL from start-dev.js after HTTP 2xx/3xx readiness.
Apply the asymmetric viewport buffer that already fixed mobile to desktop
multiboard feeds, and trim per-post mount cost so remounts during scroll-up
are cheaper:
- Desktop multiboard buffer goes from {600,600} to {1200,2400} (top-heavy),
matching the mobile pattern from 99c0bbfac so items stay mounted longer
when scrolling back up
- Cache feed post height estimate by CID in pretext-height-estimates so
remounts skip the Pretext text-measurement work
- Memoize CommentMedia and switch its expanded-media-store reads to atomic
selectors so it stops rerendering on unrelated store changes
- Memoize useCommentMediaInfo return so its reference is stable for memo
comparators downstream
- Stop useFetchGifFirstFrame from forcing an extra render on every post
mount by bailing out of equivalent setState calls
- Extract PendingModerationActions out of PostInfo so the two
usePublishCommentModeration calls only run on the post page when
mod-approval is actually pending, not on every feed item
Add a Claude Code SessionStart hook (matcher: startup) that runs
`corepack yarn install` when node_modules is missing, so worktrees Claude
creates internally are immediately usable. Also extend create-task-worktree.sh
to install deps after the worktree is created, covering Codex/Cursor/manual
flows that share that script.
Rewrite two release entries that leaked dev jargon (v0.7.4 "Pretext feed
sizing" / "mobile scroll perf", v0.7.3 "compact account history") and tighten
the release skill's Step 3 with a non-negotiable plain-English rule plus
good/bad examples. Mirror the rule inline in AGENTS.md so agents editing the
blotter outside the skill still see it.