Skip to content

feat(web): drag sidebar threads between categories - #145

Open
tarik02 wants to merge 2 commits into
mainfrom
feature/sidebar-dnd
Open

feat(web): drag sidebar threads between categories#145
tarik02 wants to merge 2 commits into
mainfrom
feature/sidebar-dnd

Conversation

@tarik02

@tarik02 tarik02 commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

What Changed

  • Backport feat(web): drag sidebar threads between categories pingdotgg/t3code#8001 onto the fork's current main.
  • Allow dragging threads between Pinned, Regular, Snoozed, and Settled on web and desktop.
  • Apply the destination lifecycle state on drop. Pinned keeps the selected position; the other categories use their normal sort order. Dropping into Snoozed opens the existing duration menu.
  • Replace the pinned-only sorter with one dnd-kit board and preserve the fork's F2 thread rename shortcut.
  • Keep mobile lifecycle menus consistent with the category rules.

Why

The sidebar previously allowed reordering only inside Pinned. This backport brings the upstream cross-category drag behavior to the fork without retaining the earlier divergent implementation.

UI Changes

Before: drag and drop only reordered threads within Pinned.

After: the upstream recording covers pinned reorder, moves between categories, the snooze menu, card-to-compact morphing, auto-scroll, and viewport stability.

recording-a377fc69-049a-472c-9a65-b0a7aa970521.mp4

Verification

  • vp fmt --check <24 changed files>
  • vp lint <22 changed TypeScript files> --report-unused-disable-directives
  • vp run --filter @t3tools/web --filter t3 --filter @t3tools/mobile --filter @t3tools/contracts typecheck
  • vp test run apps/server/src/orchestration/decider.pinned.test.ts apps/server/src/orchestration/decider.snoozed.test.ts apps/web/src/components/Sidebar.dnd.logic.test.ts apps/web/src/components/Sidebar.logic.test.ts (158 passed)
  • git diff --check

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Model: GPT-5.6-sol
Harness: Codex in T3 Code

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL labels Aug 21, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 694408c6a8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread apps/web/src/components/Sidebar.tsx Outdated
Comment on lines +3272 to +3275
case "snooze":
return (
capabilities?.threadSnooze === true &&
canSnooze(thread, { now: new Date().toISOString() })

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Gate snooze drops on exclusive-lifecycle support

When the current web or desktop client connects to a pre-313 server, this check enables cross-section snooze drops using the already-existing threadSnooze capability. The parent server advertises that capability, but its thread.snooze and thread.unsnooze handlers preserve pinnedAt and settledOverride; consequently, a thread dragged from Pinned or Settled into Snooze returns to its old section after Wake or expiry instead of Regular as the new UI promises. Version this semantic with a new capability, or perform compatible cleanup before enabling these drops.

AGENTS.md reference: AGENTS.md:L19-L21

Useful? React with 👍 / 👎.

@github-actions

github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

⚠️ The latest CI run did not produce a thread transfer result for fe06825.

This comment will update automatically after the next completed run.

@tarik02
tarik02 force-pushed the feature/sidebar-dnd branch from bc12f02 to d263d44 Compare August 24, 2026 12:46
@tarik02 tarik02 changed the title feat(web): add sidebar thread drag and drop feat(web): drag sidebar threads between categories Aug 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 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