43a590277b
Replace the simple <ul> in the cascade-prompt panel inside the upcoming- meeting alert with a 4-column table: row index, the meeting's dailyNumber, title (truncate + title=), and "from → to". The new `meetingNumbersById` map is built once in UpcomingMeetingAlert from the already-loaded dayData and threaded through PostponeDialog into both CascadePromptBlock call sites (postpone-minutes and reschedule). Existing `cascade-followers-list` and `cascade-follower-<id>` testids are preserved on the table/rows so prior selectors keep matching. Adds 4 new i18n keys (cascadeColIndex/MeetingNumber/Title/Times) in ar.json and en.json. The legacy cascadeListItem key is left in place since it isn't worth a separate cleanup. Extends the existing "Cascade prompt UI: Shift sends cascadeFollowing" e2e test to assert the first row's index cell renders "1" and the meeting-number cell renders the seeded follower's dailyNumber. insertImminentMeeting now also returns dailyNumber so the assertion can read it. tsc clean; targeted cascade specs pass (3/3).