Skip to content

fix(mobile): restore projects in the iPad sidebar - #28

Merged
pseudoseed merged 1 commit into
mainfrom
fix/ipad-sidebar-empty-projects
Sep 9, 2026
Merged

pseudoseed merged 1 commit into
mainfrom
fix/ipad-sidebar-empty-projects

Conversation

@pseudoseed

Copy link
Copy Markdown
Owner

On iPad (and any mobile client with the v2 thread list on), the sidebar rendered No threads yet even with a connected environment holding 8 projects and 78 threads.

scopedThreads and scopedPendingTasks were short-circuited to [] whenever threadListV2Enabled was true, carried over from the upstream sync. In this fork the v2 project sections partition those same two lists, so emptying them left every section with zero rows; buildThreadListV2ProjectSectionItems then drops any section whose thread count is 0, including its header. Result: an entirely blank sidebar.

The short-circuit is removed from both memos. scopedProjects keeps its guard, because only the v1 groups builder reads it and that builder already short-circuits on v2.

Reproduced and verified in the iOS Simulator (iPad Pro 13-inch M5) against a VACUUM INTO copy of real data: 8 projects, 78 threads. Toggling the short-circuit back on reproduces the blank sidebar on the same paired environment.

A regression test in threadListV2.test.ts pins the amplifier: a section handed no threads loses its header too.

Model: Claude Opus 5. Harness: Claude Code.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL labels Sep 9, 2026
The iPad sidebar showed connected environments and nothing else: no
projects, no threads.

Upstream's v2 thread list does not read scopedThreads or
scopedPendingTasks, so pingdotgg#10413 short-circuits both to an empty array
whenever the v2 list is on. The fork's project sections do read them.
Every section was built with no rows, and the section item builder drops
a section whose thread count is zero, header included. Seven projects
in, nothing out.

Reproduced against a copy of a real database: 8 projects and 78 threads
produced 7 sections and 0 list items with the short-circuit, and 91
items without it.

Only the sidebar had the extra consumer. HomeScreen's copies feed
buildHomeThreadGroups, which short-circuits on v2 itself, so they keep
the optimization. scopedProjects keeps it for the same reason.

Claude Opus 5 (1M context) via T3 Code.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@pseudoseed
pseudoseed force-pushed the fix/ipad-sidebar-empty-projects branch from 55d63c1 to 19f11e5 Compare September 9, 2026 04:09
@github-actions github-actions Bot added size:S and removed size:XXL labels Sep 9, 2026
@pseudoseed
pseudoseed merged commit c81abef into main Sep 9, 2026
20 checks passed
@pseudoseed
pseudoseed deleted the fix/ipad-sidebar-empty-projects branch September 9, 2026 04:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant