-
Notifications
You must be signed in to change notification settings - Fork 63
Description
User story
We need ChannelRequest records to appear in the existing History page alongside WorkOrder records so that users have a single view of all activity in a project.
Details
Blocked: needs designs and discovery. This touches one of the most complex pages in Lightning. The current implementation is complex and changes can be tricky — performance is critical here. A holistic review of the page's queries, filters, and LiveView structure is needed before implementation begins. Budget time for discovery.
ChannelRequests must appear alongside WorkOrders in the History page, filterable by channel. This is the most complex UI story in the MVP.
Cut line: If History page integration proves too expensive for the timeline, a standalone "Channel Requests" list page is the simpler alternative — standard LiveView CRUD with filtering, achievable in a couple of days. The MVP could ship with the simpler version and upgrade to full History integration in a fast follow.
Implementation notes
Dependencies: #4399 (schema), #4405 (observer populates request/event data)
Key technical considerations:
- History page currently shows only WorkOrders with complex filtering (workflow, status, date range)
- Adding a second record type affects: queries, pagination, sorting, detail views, filters
- Recommended approach for MVP: polymorphic query (merge in application). Union view if performance requires it.
- Pagination with mixed record types is the hardest part — cursor-based pagination across two tables needs care
- Performance is critical — the History page is heavily used and must remain fast
Release notes
Channel requests now appear in the project History page alongside workflow runs.
User acceptance criteria
- History page shows both WorkOrders and ChannelRequests, sorted by time (most recent first)
- ChannelRequests visually distinguishable from WorkOrders (icon, label, or type badge)
- Filter by Channel added to History page filters
- Existing filters (workflow, status, date range) continue to work; channel filter is additive
- ChannelRequest detail view accessible from History row showing: request (method, path, headers, body preview, body hash), response (status, headers, body preview, body hash), timing (started_at, completed_at, TTFB, total latency), status badge, link to channel config via snapshot
- Pagination works correctly with mixed WorkOrder + ChannelRequest results
- No regressions in existing History page functionality