feat(web): add story filtering and number jump - #150
Conversation
adrian-lorenzo
left a comment
There was a problem hiding this comment.
Thanks for the contribution!
Story-number jumps need to handle duplicates before this can merge. localMatch uses the first matching story, so if two repositories have the same number, pressing Enter can silently open the wrong one. Off-board duplicates also leave the user without a working way to choose a repository. Please make ambiguous matches explicit and add tests covering both local and API ambiguity.
The branch also conflicts with main. When rebasing, please preserve the Builder plan policy by passing builderPlanRequired through StoriesBoard to each IssueRow. Please also distinguish API failures from a genuine 404, fix the import ordering, and update the title and commit subject to an allowed Conventional Commit such as feat(web): add story filtering and number jump.
With those changes, we can approve and merge it!
3b72588 to
a62f906
Compare
|
Thanks for the thorough review — pushed a rebased, squashed commit addressing all six points:
One note on scope: this does touch Also flagging: |
|
Confirmed the title and commit subject landed correctly: Ready for another look whenever you get a chance. |
|
Good Morning Adrián,
Thanks for that.
Pushed a rebased, squashed commit addressing all six points, plus a couple
of follow-up comments on the PR with details and verification output.
Ready for your review, whenever it works for you.
Thanks,
Bobby AP
…On Thu, Aug 27, 2026 at 3:41 PM Adrián Lorenzo ***@***.***> wrote:
***@***.**** requested changes on this pull request.
Thanks for the contribution!
Story-number jumps need to handle duplicates before this can merge.
localMatch uses the first matching story, so if two repositories have the
same number, pressing Enter can silently open the wrong one. Off-board
duplicates also leave the user without a working way to choose a
repository. Please make ambiguous matches explicit and add tests covering
both local and API ambiguity.
The branch also conflicts with main. When rebasing, please preserve the
Builder plan policy by passing builderPlanRequired through StoriesBoard
to each IssueRow. Please also distinguish API failures from a genuine
404, fix the import ordering, and update the title and commit subject to an
allowed Conventional Commit such as feat(web): add story filtering and
number jump.
With those changes, we can approve and merge it!
—
Reply to this email directly, view it on GitHub
<#150?email_source=notifications&email_token=BSPX7VAM5ZGWAHAELHRMRF35MBCDNA5CNFSNUABKM5UWIORPF5TWS5BNNB2WEL2QOVWGYUTFOF2WK43UKJSXM2LFO4XTKMBUGIYTANBZGQ42M4TFMFZW63VGMF2XI2DPOKSWK5TFNZ2KYZTPN52GK4S7MNWGSY3L#pullrequestreview-5042104949>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BSPX7VGDUY4TDUSHSYLSPGD5MBCDNAVCNFSNUABGKJSXA33TNF2G64TZHMYTENRXGI2DQNZQGA5US43TOVSTWNJRGUYDCOJWG44TNILWAI>
.
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS
<https://github.com/notifications/mobile/ios/BSPX7VHCGR5GIN7PD3XUXKT5MBCDNA5CNFSNUABKM5UWIORPF5TWS5BNNB2WEL2QOVWGYUTFOF2WK43UKJSXM2LFO4XTKMBUGIYTANBZGQ42M4TFMFZW63VGMF2XI2DPOKSWK5TFNZ2KUZTPN52GK4S7NFXXG>
and Android
<https://github.com/notifications/mobile/android/BSPX7VBYODIUWKMBBVW6IMT5MBCDNA5CNFSNUABKM5UWIORPF5TWS5BNNB2WEL2QOVWGYUTFOF2WK43UKJSXM2LFO4XTKMBUGIYTANBZGQ42M4TFMFZW63VGMF2XI2DPOKSWK5TFNZ2K4ZTPN52GK4S7MFXGI4TPNFSA>.
Download it today!
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
adrian-lorenzo
left a comment
There was a problem hiding this comment.
Thanks for the thoughtful revision!
The original issues are addressed, but the off-board lookup still has a race. If someone submits one number and then changes or submits another before the first request completes, the older response can arrive last and navigate them to the wrong story or overwrite the current status. Please cancel superseded requests or ignore their responses, and add a component-level regression covering out-of-order responses.
Please also announce the asynchronous lookup result through an aria-live region, use links for the repository choices, and extend the API integration test to verify the 409 response’s matches data that the picker now depends on.
With those small improvements, this should be ready to approve.
Adds a client-side filter box on the Stories page that narrows visible stories by title match, and lets a bare story number jump straight to that story. Ambiguity is handled explicitly, both locally and via the API: - Locally: if two repos on the board share the same number, that's reported as ambiguous rather than silently opening the first match. - Off-board: the story-detail endpoint's 409 response now returns the candidate repos (repoId/repoOwner/repoName/storyType), so the UI renders a real Link-based picker instead of a dead-end message. A request-generation counter (jumpSeq) guards against out-of-order async responses: submitting a new number invalidates any in-flight lookup, so a stale response can never navigate the user to the wrong story or overwrite newer state. Covered by a component-level regression test (stories-board.test.tsx) that deliberately resolves an older request after a newer one and asserts only the newer one navigates. The async jump status (checking/not-found/error/ambiguous) is announced through an aria-live region. API failures (5xx, network errors) are distinguished from a genuine 404 — the UI never claims a story doesn't exist when the truth is "couldn't check right now." Tests: - apps/web/test/story-jump.test.ts: pure local/API ambiguity, not-found, and error resolution logic. - apps/web/test/stories-board.test.tsx: component-level regression for out-of-order async responses. - services/api/test/github-platform-lane.test.ts: extended to assert the 409 response's error.details.matches carries the correct candidate repos. Verified: pnpm --filter @facility/web typecheck / test, targeted services/api test run for the modified test (both pass). The full services/api suite currently has pre-existing failures on main unrelated to this change, traced to theam#205 (builderPlanPolicy / workspaceBaseSha schema drift) — confirmed by running the same typecheck against a clean upstream/main checkout before any of this branch's changes were applied.
a62f906 to
4b4828a
Compare
|
Dear Adrián,
Good Evening!
Thanks for the follow-up review. Pushed fixes for all four points, plus a
couple of comments on the PR with the details and verification.
Please check it out, at your convenience.
Thanks,
Bobby AP
…On Fri, Aug 28, 2026 at 1:13 PM Adrián Lorenzo ***@***.***> wrote:
***@***.**** requested changes on this pull request.
Thanks for the thoughtful revision!
The original issues are addressed, but the off-board lookup still has a
race. If someone submits one number and then changes or submits another
before the first request completes, the older response can arrive last and
navigate them to the wrong story or overwrite the current status. Please
cancel superseded requests or ignore their responses, and add a
component-level regression covering out-of-order responses.
Please also announce the asynchronous lookup result through an aria-live
region, use links for the repository choices, and extend the API
integration test to verify the 409 response’s matches data that the
picker now depends on.
With those small improvements, this should be ready to approve.
—
Reply to this email directly, view it on GitHub
<#150?email_source=notifications&email_token=BSPX7VFEOQVIP434MO7QQ3D5MFZP3A5CNFSNUABKM5UWIORPF5TWS5BNNB2WEL2QOVWGYUTFOF2WK43UKJSXM2LFO4XTKMBVGA4TKMZXGQ2KM4TFMFZW63VGMF2XI2DPOKSWK5TFNZ2KYZTPN52GK4S7MNWGSY3L#pullrequestreview-5050953744>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BSPX7VGHX5ZHL4ZMMS22C4T5MFZP3AVCNFSNUABGKJSXA33TNF2G64TZHMYTENRXGI2DQNZQGA5US43TOVSTWNJRGUYDCOJWG44TNILWAI>
.
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS
<https://github.com/notifications/mobile/ios/BSPX7VBBLMRZZWGGW3DCU235MFZP3A5CNFSNUABKM5UWIORPF5TWS5BNNB2WEL2QOVWGYUTFOF2WK43UKJSXM2LFO4XTKMBVGA4TKMZXGQ2KM4TFMFZW63VGMF2XI2DPOKSWK5TFNZ2KUZTPN52GK4S7NFXXG>
and Android
<https://github.com/notifications/mobile/android/BSPX7VENDAIASLOZV2CBPKD5MFZP3A5CNFSNUABKM5UWIORPF5TWS5BNNB2WEL2QOVWGYUTFOF2WK43UKJSXM2LFO4XTKMBVGA4TKMZXGQ2KM4TFMFZW63VGMF2XI2DPOKSWK5TFNZ2K4ZTPN52GK4S7MFXGI4TPNFSA>.
Download it today!
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
web: add title filter and number-jump on the Stories board (#104)
Adds a client-side filter box on the Stories page that narrows
visible stories by title match, and lets a bare story number jump
straight to that story. Numbers already on the board resolve
locally; numbers outside the board's 7-day window fall back to
GET /v1/projects/:projectId/stories/:number.
Known gap: the 409 ambiguous_story_number response doesn't
currently return the candidate repos, so ambiguous numbers show
a message rather than a repo picker. Extending that response is
a natural follow-up, kept out of this PR to stay scoped to
apps/web.