You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit bf538e2
Browse filesBrowse the repository at this point in the historyBrowse files
<imgalt="The Pull requests page: colored status quick views, searchable multi-select filters, and a table where each PR shows the one thing blocking it."src="docs/screenshots/prs-light.png"width="100%">
<imgalt="The Pull requests page: compact organization / repository groups with activity and status counts, direct GitHub links, and a sticky reader for the selected PR."src="docs/screenshots/prs-light.jpg"width="100%">
86
86
</picture>
87
87
88
88
Every open PR you authored (`is:pr is:open author:@me archived:false`, as whoever `gh` is logged in
@@ -102,8 +102,18 @@ this order:
102
102
|**Blocked**| branch protection is not satisfied ||
103
103
|**Ready to merge**| none of the above | who approved it |
104
104
105
-
Next to the state: check counts, review state, last commit, diff size, and the local worktree that has
106
-
the branch checked out. Status quick views give one-click access to needs-action, ready, waiting, draft, and queued PRs. The Filter menu combines multiple statuses, organizations, and repositories with search. Active selections can be removed individually; filters and sort order are remembered for the browser session.
105
+
The overview groups PRs under compact `organization / repository` headings. Counts, attention
106
+
indicators, and the latest commit time remain visible when a repository is collapsed. Groups follow
107
+
your activity or name sort. Expanded repositories preview two PRs; **Show more** opens the rest.
108
+
109
+
Select a PR to read its description, changed files, checks, reviews, branch, and linked local worktree
110
+
in the sticky reader. The list scrolls with the page. **GitHub** links on each row and in the reader
111
+
open the PR directly. On a phone, selection opens the reader with a **Back to pull requests** action.
112
+
113
+
Use the repository heading's picker to find an organization or repository, the status dropdown for
114
+
needs-action, ready, waiting, draft, or queued PRs, and **Filter** for multiple selections. Search and
115
+
filters show all matching results without the two-PR preview limit. Active selections can be removed
116
+
individually; filters, sorting, repository expansion, and the selected PR persist for the browser session.
107
117
108
118
### Sessions
109
119
@@ -135,7 +145,7 @@ every target is thumb-sized.
135
145
<palign="center">
136
146
<imgalt="The Worktrees page on a phone: totals as a two-by-two grid and repositories as cards."src="docs/screenshots/phone-worktrees.png"width="260">
137
147
138
-
<imgalt="The Pull requests page on a phone: status quick views, a mobile filter panel, and one card per PR with its blocker, checks and review."src="docs/screenshots/phone-prs.png"width="260">
148
+
<imgalt="The Pull requests page on a phone: repository groups with activity counts, compact PR previews and direct GitHub actions."src="docs/screenshots/phone-prs.jpg"width="260">
139
149
</p>
140
150
141
151
**Sync now** (top right) re-runs the worktree scan, the PR poll and the session index right away and
@@ -379,8 +389,10 @@ manager.
379
389
380
390
#### JSON
381
391
382
-
The page's data is also served as JSON: `/api.json` (worktrees), `/api/prs.json` (pull requests) and
383
-
`/api/status` (version, last scan times, whether a sync is running).
392
+
The page's data is also served as JSON: `/api.json` (worktrees), `/api/prs.json` (pull requests),
393
+
`/api/pr-detail?repo=OWNER/REPO&number=123` (description and changed files for a tracked PR), and
394
+
`/api/status` (version, last scan times, whether a sync is running). PR details include up to the first
395
+
100 changed files and the total changed-file count.
384
396
385
397
## Privacy and security
386
398
@@ -424,7 +436,8 @@ every 5 minutes, or on Sync now
424
436
-**GitHub API cost.** One GraphQL query pages through your PRs 20 at a time: about 1 point per 20
425
437
PRs per poll, so about 7 points every 5 minutes for 120 PRs, out of the 5,000 an hour GitHub
426
438
allows. Failing check names are fetched only for PRs that have failures. Polling pauses while
427
-
fewer than 300 points remain.
439
+
fewer than 300 points remain. Descriptions and changed files load only when selected; simultaneous
440
+
requests share a query, and server results are cached for five minutes or until a new commit.
428
441
-**Sessions without reading transcripts.** Each transcript is read as a 128 KB head and a 512 KB
429
442
tail, and only again when the file changes. Opening a session reads just enough of its end for the
// Descriptions and file paths are synthetic, just like the rest of the demo.
252
+
funcdemoPRDetail(pr*TrackedPR) PRDetail {
253
+
bodies:=map[int]string{
254
+
482: "## Summary\n\nPrevent concurrent refresh requests from rotating the same token twice. Requests for a session share the pending refresh and receive the newly issued token.\n\n## Validation\n\nAdded concurrent refresh coverage and ran the auth suite with the race detector.",
255
+
476: "## Summary\n\nWrite payments to both ledgers during migration. Reconciliation compares balances before switching the read path.\n\n## Rollout\n\nKeep the original ledger available for rollback. The PostgreSQL integration test and migration lint check need attention before this can merge.",
256
+
479: "Accept an idempotency key when creating a charge. Repeated requests return the original result instead of creating another charge.\n\nKeys expire after 24 hours and are scoped to the account.",
257
+
471: "Write CSV rows to the response as they are read from the database, keeping memory use bounded for large exports.\n\nStop reading when the client disconnects. Tested with a million-row export and an interrupted download.",
258
+
1291: "Give shipping its own checkout step and validation state. Customers can edit their address without losing their payment information.\n\nThe branch needs a rebase after the recent checkout layout changes.",
259
+
1279: "Restore saved cart contents when a customer signs in on another device.\n\nReview feedback asks for explicit behavior when a saved item is no longer available.",
260
+
1284: "Load the product carousel when it approaches the viewport. The first product image keeps its eager loading behavior.\n\nReduces initial JavaScript and image requests on product pages.",
261
+
214: "Upgrade Terraform and pin provider versions across infrastructure modules.\n\nStill preparing the staging apply and migration notes. This PR is not ready for review.",
262
+
210: "Pin the AWS provider to the same supported major version in every module.\n\nUpdate the dependency locks and verify the generated plan.",
263
+
88: "Add support for pushing eligible linked assets on HTTP/2 connections.\n\nCover cancellation and cache behavior in the protocol tests. The compatibility checks are still running.",
264
+
12: "Initialize Node and Python version managers only when their commands are first used.\n\nProject-specific version selection keeps working while interactive shell startup gets faster.",
Copy file name to clipboardExpand all lines: docs/design/brief.md
+6-2Lines changed: 6 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,9 +22,13 @@ Search and multi-select verdict/repository filters update the map, metrics, proj
22
22
23
23
## Pull requests
24
24
25
-
Colored status quick views filter by the server's workflow tone. The shared Filter menu combines statuses, organizations, and repositories. Selections use OR within a field and AND between fields; option counts exclude that option's own field. Active selections can be removed individually, and Reset all clears them with search.
25
+
A repository workspace header shows the current scope, PR total, attention count, and latest activity. Its searchable picker moves between all repositories, an organization, or a single repository. The status dropdown and shared Filter menu use the same option catalog and selection state. Selections use OR within a field and AND between fields; option counts exclude that option's own field. Active selections can be removed individually, and Reset all clears them with search.
26
26
27
-
The table keeps blocker, checks, and review evidence distinct. Activity combines last commit and opened time to preserve readable column widths. Status text must wrap at words rather than split words into fragments.
27
+
The left overview uses inline `organization / repository` headings with aligned attention, count, and activity columns. Organizations and repositories follow the chosen activity or name sort. Collapsed repositories retain their metadata; expanded groups show two PR previews with a Show more action. Search and filtering lift this preview limit. A GitHub action is always available on each row.
28
+
29
+
The overview follows normal document scrolling. A separate sticky reader shows the selected PR's description, changed files, checks, reviews, branch, and local worktree. Long checks use a disclosure in the reader rather than stretching list rows. Below 900px, the reader replaces the list and offers a Back to pull requests action with focus restoration. Below 640px, existing mobile navigation remains unchanged.
30
+
31
+
Selected, hovered, and keyboard-focused rows have quiet rounded surfaces. A single boundary renderer suppresses separators on both sides of those surfaces, using the actually visible rows so filtering and previews do not leave orphan dividers. Long titles wrap; metadata stays aligned. Descriptions render a small Markdown subset as text and safe elements, never raw HTML.
0 commit comments