Skip to content

feat: add desktop subscription group management - #32

Open
kapdon wants to merge 21 commits into
TypeType-Video:devfrom
kapdon:codex/subscription-groups-ux
Open

kapdon wants to merge 21 commits into
TypeType-Video:devfrom
kapdon:codex/subscription-groups-ux

Conversation

@kapdon

@kapdon kapdon commented Sep 15, 2026

Copy link
Copy Markdown

Summary

Add a dedicated desktop subscription-group manager at /subscriptions/groups, based on the prototypes and maintainer feedback in TypeType-Video/TypeType#172. It opens from Manage groups under Subscriptions → Channels, as confirmed in the placement discussion.

  • Select channel rows to highlight them. One selected channel opens a searchable group combobox with removable chips and Save/Cancel; multiple selections use bulk actions. Selection and drafts survive filters and pagination.
  • Create, rename and delete groups; filter by membership or ungrouped channels. Keep the two-arrow In group / Not in group toggle, hidden-selection counts, sidebar-based bulk target defaults, and destructive-action confirmations.
  • Paginate both lists according to available desktop height, keeping page controls visible without scrolling the group list or extending the document. Compact spacing and square controls follow the clean upstream group prototype and existing TypeType theme; the extracted conventions are recorded in DESIGN.md.
  • Pause editing with a recovery warning if group definitions or memberships fail to refresh. Retry reloads data without replaying successful writes. Partial-write drafts remain available for retry against the refreshed state.
  • Add group filters to Channels and Videos, an optional post-import management link, profile cache invalidation, and English/French/German messages. Membership writes respect the API's 500-channel batch limit.
  • Preserve loaded feed videos after pagination failures and offer an explicit Retry action.
  • Include a reproducible local fixture with 150 channels, 18 groups and 300 illustrative videos, including 109 channels in multiple groups and 22 ungrouped channels. Run bun run dev:groups-fixture; see fixture setup.

Refs TypeType-Video/TypeType#172. Original prototypes · Maintainer feedback.

Validation

  • bun run check, bun run test (358 passed), bun run knip, bun run sherif, bun run build, and git diff --check passed.
  • Regression tests cover pagination capacity and anchoring; successful writes followed by failed group or membership refreshes; partial writes; recovery without replaying writes; background and initial-load failures; and feed pagination recovery.
  • Chromium checks cover single/bulk selection, retained drafts, filters and target defaults, group CRUD, keyboard controls, Save/Cancel, failed writes, and failed-refresh recovery. Verified recovery makes no additional writes and subsequent edits use refreshed memberships. The combobox was also checked with 107 groups and 21 selected chips.
  • Checked both themes, translated labels, desktop viewport fit at 1280 × 720 / 1440 × 900 / 1024 × 600, and the existing 390 × 844 document-flow fallback without horizontal overflow. Test fixture memberships were restored.
  • Each new commit has fewer than 300 insertions.

Scope and remaining verification

Uses the merged subscription-group server API. Compact mobile composition is deferred. Firefox, WebKit and live-backend integration remain unverified. The build retains its existing large-chunk warning; Knip reports two existing stale ignore hints.

Detailed behavior and verification: subscription group UX notes.

Desktop preview

Current 1280 × 720 preview with disposable data: Cooking selected, the matching bulk target, an inline group combobox, and both lists' pagination visible.

Subscription group manager with square TypeType controls, inline editing and viewport pagination

@kapdon

kapdon commented Sep 15, 2026

Copy link
Copy Markdown
Author

Hey @Priveetee, where would you like the group management page to live?

Currently it is accessed through a Manage groups button under Subscriptions → Channels, as shown below. Would you prefer to:

  • Keep it as a separate page accessed from Channels;
  • Add a Groups tab next to Channels; or
  • Replace the current Channels page with the new management view, since the current page is mainly a list of subscribed channels?

Current placement (desktop preview with sample data):

Channels page with the Manage groups button at the upper right, below the Videos and Channels tabs

@Priveetee

Copy link
Copy Markdown
Member

Mmmh, I think that keeping it as a separate page for now makes the most sense, opened through the Manage groups button under Subscriptions → Channels.

This keeps the existing Videos / Channels navigation simple and preserves Channels as the normal subscription list, while the group manager stays focused on organization. I wouldn’t replace the Channels page.

We can revisit a dedicated Groups tab later if discoverability becomes an issue. For now, the current placement feels right to me.

@Priveetee

Copy link
Copy Markdown
Member

And please don't forget to split ur commit ;p

@kapdon
kapdon force-pushed the codex/subscription-groups-ux branch from 4405d41 to 8683521 Compare September 15, 2026 21:44
@kapdon
kapdon marked this pull request as ready for review September 16, 2026 15:25
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.

3 participants