assist v0.334
Reviewing PRs from the sessions web view
The headline today was pulling PR review into the sessions web view so I don’t have to bounce out to GitHub to look at what a session produced. A new ReviewButton, ReviewDropdown and ReviewPrList surface the open PRs for a repo, backed by a prList/prStatus layer and a createCachedGhJson helper so the gh calls don’t hammer the API. The daemon side grew to match, with PR metadata flowing through lifecycleHandlers, toSessionInfo and the session types. Then came the inevitable trail of follow-ups: an open-PR button right on the session cards, hiding the review dropdown entirely when there are no open PRs, and a fix to get the review card chip and PR meta rendering correctly.
Alongside that I reworked the web layout. SessionsView became AppLayout with a persistent sidebar that survives navigation instead of being tied to a single view, and AppRoutes/AppSidebar were reshuffled to suit. The history list got simpler too — I scoped it to the selected repo and deleted the now-redundant FilterDropdown, ProjectFilter and uniqueProjects, which felt good to see go. And because the web bundle and the daemon can drift out of sync, I added a VersionBadge that shows the web version whenever it mismatches the running daemon, wiring the version through the WebSocket handshake.
The rest was fixes, mostly around sessions and the backlog signalling. A stale socket now triggers a single session restore instead of looping, AskUserQuestion correctly shows a waiting status via the hooks settings, and PTY sessions keep their working directory through an ASSIST_SESSION env var. On the backlog side I stopped signal files from leaking into foreign repos when phase results are resolved, and tightened the cli-hook deny so it catches raw git commit calls buried inside a larger command rather than only at the front.