- New Classification section: Problem, Trade, SubTrade dropdowns (SubTrade filters by Trade)
- New Schedule fields: Scheduled, Completed dates
- New Financial section: Vendor NTE, Customer NTE placeholder
- All sections below Details default collapsed with toggle arrows
- Assigned To on view page is now a clickable dropdown like status
- TT moved to Details section
- Dropdown options settings page at /settings/dropdowns with add/edit/delete
- Settings link in sidebar and user dropdown
- Pass internalWONumber through API mapping
- Edit page header shows "Edit Work Order XXXXXXXX"
- Rename "Work Order Number" field to "Customer WO" (not required)
- View page shows both Internal WO and Customer WO in details
- Breadcrumb uses internal WO number
- List WO # column shows internal number
- Menu now renders on document.body via createPortal
- Positioned using getBoundingClientRect from the badge button
- Eliminates all parent stacking context / overflow issues
- Click the status badge to open a dropdown with all status options
- Status change calls ChangeStatus API and updates locally
- Color-coded status dots in the dropdown menu
- Closes on outside click
- Also logged in audit trail via backend ChangeStatus endpoint
- Add CommentInput component with textarea and send button
- Enter to send, Shift+Enter for new line
- New comments append to the list immediately without reload
- Fixed 400px height for tab content with scrollable overflow
- Comment input bar pinned at bottom of tab container
- Add addComment API function calling AddCommentJson endpoint
- Auto-scroll to newest comment
- Filter comments by commentType field (customer, vendor, internal)
- Add AuditTimeline component showing field changes with old → new values
- Pass auditLog from API response to view page
- Extract CommentTimeline into reusable component
- Filter comments: customer (from ingest pipeline, has recordType/commenter)
vs vendor (internal, has userName from ApplicationUser)
- Add tab UI to switch between streams with counts
- Format comment timestamps with formatDateTime
- Show "No comments yet" when a tab is empty
- Create WorkOrderViewPage with details grid, status badge, and activity timeline
- Add /workorders/:id route for view, keep /workorders/edit/:id for edit
- List page now navigates to view page instead of edit
- Include comments and commenter fields in API response mapping