Repository navigation
Redesign the App Home PR queue: stats, Overdue, tabs - #2
Merged
Merged
Conversation
The App Home now leads with three big-number stats (Overdue, Waiting on You, Open PRs), each with a breakdown line, then a row of tabs (All, Overdue, Waiting on You, Your Open PRs) and rich-text lists grouped by next step or state. Rows link as "<repo> - #<number>" and flag overdue PRs with the wait in bold. - Overdue uses the daily report's rule; overdueOwners moves to reminders.ts so the report and the queue share it. - New SlackRegistry.homeButton: clicking re-renders the App Home with the button's value as the section's state, kept per feature in the view's private_metadata. Opening the tab starts from no state. - rich_text list builders in src/slack/blocks.ts. - /nathan prs replies with the All tab, without tabs. - Spec §4.9 and the architecture note updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GtVPu9KaARmEtb3ws8wSiK
- Refresh: a secondary button beside Request PR re-renders the App Home, keeping the queue's tab, with "Updated <date> at <time>" in each viewer's time zone. The Request PR section becomes section + actions + context. - Tests: overdueOwners directly (threshold, weekends, urgent, drafts and merge queue), and an App Home test past the reminder threshold. prContext moves to test/helpers/pr.ts. - Docs: home state is per feature, not per section; Overdue shares the Needs attention rule but counts Dependabot PRs for the triager; the 30-row group cap is in the spec; the truncation notice and dry-run comment are corrected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GtVPu9KaARmEtb3ws8wSiK
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The App Home was one long list of links. This PR rebuilds it in plain Block Kit (no images). Preview as built: https://claude.ai/artifact/BzdkQoGRCUaLdmhTshTr1w
What it looks like
rich_textbullet list. Rows read Kiln - #1709, then the title, the author as a user pill, and the wait. Overdue rows show the wait in bold with ⏰. Your PRs name whoever else they're waiting on. Each group shows at most 30 rows, then "…and N more"./nathan prsreplies with the All view, without tabs.Data
thresholdHours.overdueOwnersmoves fromreport.tsintoreminders.ts, so both use one implementation.Platform
SlackRegistry.homeButton(actionId). Clicking one re-renders the App Home with the button's value as the feature'sstate(HomeRequest.state). State is per feature, so every section a feature registers receives it.private_metadata, so one feature's click keeps other features' state.app_home_openedstarts from no state.actionandhomeButton, so a clash in either direction fails at startup.richText/richTextListbuilders insrc/slack/blocks.ts. Dry run can't defuse theuserelement, so its doc comment limits it to the App Home and ephemeral replies, where it never notifies.Known and accepted
Tests
npm run checkpasses: lint, typecheck, config, import boundaries, and 769 tests.overdueOwnerscovers the threshold, weekends, urgent, drafts and the merge queue.composeHomeand the registry, and the Refresh button.Spec §4.9 and the architecture note on App Home composition are updated.
🤖 Generated with Claude Code
https://claude.ai/code/session_01GtVPu9KaARmEtb3ws8wSiK