Skip to content

fix(devex): count a topic click as picking the tile it opens on - #184

Merged
webjunkie merged 2 commits into
mainfrom
fix/devex-topic-click-arms-dwell
Oct 12, 2026
Merged

webjunkie merged 2 commits into
mainfrom
fix/devex-topic-click-arms-dwell

Conversation

@webjunkie

Copy link
Copy Markdown
Contributor

Owner feedback after #176: skimming topics in the sidebar and dwelling on a one-tile topic (say, a merged PR) no longer marked anything, so each one needed Mark read by hand. This revises Q1 from 2026-10-10.

New rule
A click on a topic counts as the user's pick of the tile and PR the topic opens on. The dwell and the Mac ping visit treat it like a click on that tile. All the existing guards stay (server openedRead verdict, writes lock, menus holding the dwell, Undo, once per open, no mark that turns wanted later).

Edge cases

  • Tiles still loading: the click waits until the topic's tiles are in, then arms the PR shown. A topic that opens on no tile arms nothing. It never carries over to a later app pick in that topic, e.g. the next tile after the first one is marked.
  • Re-clicking the open topic works like re-clicking the open tile: an open that marked nothing starts over, a mark keeps its Undo.
  • Topic click while a search narrows: the topic's first matching tile counts, since that is what the user clicked into.
  • Still never marks: search's first match when the filter moves the view, back/forward, the next tile after one left, an app pick turned user-like, and the topic the agent toast opens (it opens the agent pane, not a tile).

What counts as a topic click
Sidebar rows, the Archive drawer (same handler) and the topic links in Instructions. All three are direct clicks that open a topic. The breadcrumb is not a link, so nothing there.

Mac pings
useTileVisit follows the same rule, so the tile a topic click opens on also clears its pings. Keeps the two consistent: if PostPile marks it read after the dwell, its pings should go too.

DESIGN.md, NEXT.md (new 2026-10-12 decision, Q1 marked revised), apps/desktop/CLAUDE.md and CHANGELOG are updated.

Since #176 only a click on a tile or PR armed the 1.5 s open-read dwell.
Skimming topics through the sidebar and dwelling on a one-tile topic (for
example a merged PR) left everything unread, so each one had to be marked
by hand (owner feedback 2026-10-12, revises Q1 from 2026-10-10).

- A click on a topic (sidebar row, Archive drawer, topic link in
  Instructions) now picks the tile and PR the topic opens on: it arms the
  dwell and counts as a visit for Mac pings, like a click on that tile.
- The pick waits while the topic's tiles load and never carries over to a
  later app pick in that topic (e.g. the next tile after a mark).
- Re-clicking the open topic behaves like re-clicking the open tile: an
  open that marked nothing starts over, a mark keeps its Undo.
- Search's first match, back/forward, the next tile after one left, an app
  pick turned user-like and the agent toast's topic still never mark. All
  server-side openedRead guards stay as they are.
@posthog

posthog Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

PostHog Review · Standard · reviewed 38cfc36

Nothing to post.

Step Status Result
Prepare the diff done 9 files
Main review and lenses done 0 issues
Merge and cap done 0 → 0
Publish done Nothing to post

@posthog

posthog Bot commented Oct 12, 2026

Copy link
Copy Markdown

PostHog Review alpha 🦔 If you find any issues helpful - please reply "valid", "invalid", etc., for evaluation purposes 🙏

if (userPick === null || selected.prKey === null || selected.prKey !== userPick.prKey) {
return false;
}
return !selected.auto || userPick.fromTopicClick;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 · Expire topic-click picks when the automatic selection moves

Click a topic opening PR A, search for PR B, then clear the search. userPick still names A, so pickedByUser authorizes the restored automatic selection and useOpenedRead starts a fresh dwell without another click. This breaks the own-pick rule and marks A if writes were unlocked meanwhile; expire the topic pick when selection moves.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

valid — fixed in 38cfc36: a topic-click pick now ends once the pane shows another PR (topicPickExpired).

A topic click armed the dwell for the PR it opened on. A search could move the
pane to its first match and, once cleared, bring that PR back on its own, which
restarted the dwell without a new click. The topic pick now ends as soon as the
pane shows another PR. Tile and PR picks are unchanged: their PR is the nav
entry itself.

Raised by the PostHog Review bot on #184.
@webjunkie
webjunkie merged commit 7d4de52 into main Oct 12, 2026
11 checks passed
@webjunkie webjunkie mentioned this pull request Oct 12, 2026
webjunkie added a commit that referenced this pull request Oct 12, 2026
Patch release on top of 0.28.0 with two board fixes: a topic click counts as
picking the tile it opens on again, so the dwell marks it read (#184), and a PR
with a standing change request from the viewer stays under Open instead of
folding into Dealt with (#185). Every package.json goes to 0.28.1 and the
0.28.1 changelog section gets its date for the release workflow.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant