feat(layouts): improve work item layout controls - #289
Conversation
Co-Authored-By: OpenAI Codex <noreply@openai.com>
|
Warning Review limit reached
Next review available in: 52 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughIssue list layouts now share grouping and display-property settings. Board cards and spreadsheet columns become configurable, while the calendar adds week mode, weekend visibility, and drag-to-reschedule support. ChangesWork-item layout enhancements
Estimated code review effort: 4 (Complex) | ~60 minutes Sequence Diagram(s)sequenceDiagram
participant IssueListPage
participant IssueLayoutCalendar
participant CalendarPill
participant InlineUpdate
IssueListPage->>IssueLayoutCalendar: pass onUpdateIssue
IssueLayoutCalendar->>CalendarPill: enable dragging
CalendarPill->>IssueLayoutCalendar: drop issue on date
IssueLayoutCalendar->>InlineUpdate: update target_date
Possibly related PRs
Suggested labels: Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1b8495f03f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| @@ -95,12 +109,18 @@ export function IssueLayoutBoard({ | |||
| // one column per individual state. | |||
| const { columns, orphans } = useMemo(() => { | |||
| if (groupedIssues) { | |||
There was a problem hiding this comment.
Preserve state columns for ungrouped boards
When groupedIssues is supplied, this branch also handles the flat groupBy: 'none' case; project issue display defaults to groupBy: 'none' (projectIssuesDisplay.ts), so the default board now renders one __all__/“All work items” column instead of the previous per-state Kanban columns. Because that column key is not a state id, dndEnabled is false as well, so users who simply switch to Board lose drag-to-state behavior until they manually change grouping to States.
Useful? React with 👍 / 👎.
Summary
Adds richer project work-item layout controls so board, spreadsheet, and calendar views use the same display/grouping state as the list view where applicable.
Linked issues
Closes #174
Closes #178
Closes #179
Type of change
feat:) — user-visible new capabilityfix:) — corrects broken behaviorrefactor:) — no behavior change, internal onlyperf:) — measurable improvementdocs:) — README / CLAUDE.md / planning docs onlytest:) — adds or corrects testschore:) — deps, tooling, CI, formattingstyle:) — visual / theming polish onlySurface
apps/api/)apps/web/)apps/api/migrations/)What changed
Why this approach
The existing list page already computes the canonical grouped issue model and inline update handler, so this reuses those instead of adding layout-specific grouping or persistence paths. Drag affordances on the board remain limited to state-based columns, where dropping a card has an unambiguous state update.
Database / migrations
No schema changes.
Breaking changes
Test plan
npm run validate(root) — typecheck + lint + prettier + go vet + go testnpm --prefix apps/web run buildScreenshots / recordings (UI changes)
Not captured; no seeded local browser session was available for the project work-items view.
Rollout notes
None.
AI assistance
OpenAI Codex— and AI-assisted commits include aCo-Authored-By:trailerChecklist
--no-verifybypass).envvalues committedSummary by CodeRabbit