You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: iPad only: drafts can't be opened or sent; long-press only offers Discard #13943
changed the title [-][Bug]: iPad app drafts can't be opened or sent; long-press only offers Discard[/-][+][Bug]: iPad only: drafts can't be opened or sent; long-press only offers Discard[/+]on Sep 27, 2026
Confirmed on main (a727d1d976). Still present. Checked from source only; this was not re-run on an iPad.
Tapping an Unsent draft is a no-op only in the iOS split sidebar. The iPhone path is fine, and the Discard-only long-press menu is the menu that ships on both.
The split sidebar (window at least 720×600, so a normal iPad, not an iPhone) is not in the root navigation tree. SidebarNavigationShell wraps that column in NavigationIndependentTree with a single route, SidebarThreads. The comment there says the stack is navigation-inert and that real navigation goes through callbacks created in AdaptiveWorkspaceLayout. Thread selection and “new thread on this branch” do that. Opening a draft does not.
ThreadNavigationSidebar calls usePendingTaskListActions() inside that isolated tree. openPendingTask then does navigation.navigate("NewTaskSheet", { screen: "NewTaskDraft", ... }). That navigator has no NewTaskSheet screen and no parent to bubble to, so the action is dropped. The same handler covers “Sends on reconnect” rows, so those cannot be opened from the iPad sidebar either.
On iPhone, HomeRouteScreen calls the same hook from the root stack, which does own NewTaskSheet. That is why the same 1.3.0 build opens the draft there. Android split view skips SidebarNavigationShell, so this isolation is iOS-only.
Long-press is working as written. DRAFT_TASK_MENU_ACTIONS is only Discard, on phone and iPad. Discard still runs because it clears local draft state and never navigates. An Open item in that menu would hit the same dead navigate until the tap path is fixed.
This is not a recent 1.3.0 regression of a previously working iPad tap. The independent sidebar tree landed in #3514, and the pending-row handler was wired with useNavigation inside it in #3670. Draft rows (#10260) reuse that handler. A window narrow enough to leave split view (under 720×600) uses the compact home list and should open the draft.
Fix is to mint openPendingTask next to handleNewThreadOnBranch in AdaptiveWorkspaceLayout and pass it into the sidebar. confirmDeletePendingTask can stay where it is.
Activity
[-][Bug]: iPad app drafts can't be opened or sent; long-press only offers Discard[/-][+][Bug]: iPad only: drafts can't be opened or sent; long-press only offers Discard[/+]juliusmarminge commentedon Sep 27, 2026
Triage
Confirmed on
main(a727d1d976). Still present. Checked from source only; this was not re-run on an iPad.Tapping an Unsent draft is a no-op only in the iOS split sidebar. The iPhone path is fine, and the Discard-only long-press menu is the menu that ships on both.
The split sidebar (window at least 720×600, so a normal iPad, not an iPhone) is not in the root navigation tree.
SidebarNavigationShellwraps that column inNavigationIndependentTreewith a single route,SidebarThreads. The comment there says the stack is navigation-inert and that real navigation goes through callbacks created inAdaptiveWorkspaceLayout. Thread selection and “new thread on this branch” do that. Opening a draft does not.ThreadNavigationSidebarcallsusePendingTaskListActions()inside that isolated tree.openPendingTaskthen doesnavigation.navigate("NewTaskSheet", { screen: "NewTaskDraft", ... }). That navigator has noNewTaskSheetscreen and no parent to bubble to, so the action is dropped. The same handler covers “Sends on reconnect” rows, so those cannot be opened from the iPad sidebar either.On iPhone,
HomeRouteScreencalls the same hook from the root stack, which does ownNewTaskSheet. That is why the same 1.3.0 build opens the draft there. Android split view skipsSidebarNavigationShell, so this isolation is iOS-only.Long-press is working as written.
DRAFT_TASK_MENU_ACTIONSis only Discard, on phone and iPad. Discard still runs because it clears local draft state and never navigates. An Open item in that menu would hit the same deadnavigateuntil the tap path is fixed.This is not a recent 1.3.0 regression of a previously working iPad tap. The independent sidebar tree landed in #3514, and the pending-row handler was wired with
useNavigationinside it in #3670. Draft rows (#10260) reuse that handler. A window narrow enough to leave split view (under 720×600) uses the compact home list and should open the draft.Fix is to mint
openPendingTasknext tohandleNewThreadOnBranchinAdaptiveWorkspaceLayoutand pass it into the sidebar.confirmDeletePendingTaskcan stay where it is.