Skip to content

Add watch partners and co‑watching filters - #38

Merged
joebailey26 merged 20 commits into
masterfrom
codex/add-friends/family-management-for-tv-shows
May 19, 2026
Merged

joebailey26 merged 20 commits into
masterfrom
codex/add-friends/family-management-for-tv-shows

Conversation

@joebailey26

Copy link
Copy Markdown
Owner

Motivation

  • Provide a way for users to manage friends/family they watch shows with and mark shows as watched together.
  • Allow marking a tracked show with one or more partners so viewing progress and filters can represent co‑watching.
  • Add filters on the My Shows list to view only shows watched solo or with a specific person.

Description

  • Add watchPartners and showWatchPartners tables to the schema and include migration drizzle/0002_watch_partners.sql to persist per‑user partners and show→partner mappings.
  • Implement API endpoints GET /api/watch-partners, POST /api/watch-partners, and DELETE /api/watch-partners/:id to list, create, and delete partners for the authenticated user.
  • Extend show APIs so GET /api/show/:id returns watchingWith and PATCH /api/show/:id accepts watchPartnerIds to update partners for a tracked show without changing episode behavior.
  • Add UI: a new Friends & Family page (app/pages/watch-partners.vue) for managing partners, a multiple select on the show detail page to pick partners, a select filter on My Shows to choose All, Only me or Watching with <person>, and a nav link to the new page; update shared types (server/types/transformed.d.ts).

Testing

  • Ran a TypeScript build check with pnpm -s exec tsc --noEmit, which failed in this environment due to existing project typing and environment globals (e.g. __env__) and unrelated declaration issues rather than changes introduced by this feature.

Codex Task

Copilot AI review requested due to automatic review settings May 7, 2026 18:17

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds first-class “watch partners” (friends/family) so a user can associate tracked shows with one or more partners and filter the “My Shows” list by solo/co-watching.

Changes:

  • Adds watchPartners and showWatchPartners tables plus a migration to persist partners and show↔partner mappings.
  • Introduces /api/watch-partners CRUD endpoints and extends show APIs to read/write watchingWith / watchPartnerIds.
  • Adds UI for managing partners, selecting partners on a show, and filtering “My Shows” by co-watching.

Reviewed changes

Copilot reviewed 12 out of 13 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
server/types/transformed.d.ts Adds WatchPartner and watchingWith to transformed show type.
server/db/schema.ts Adds Drizzle schema for watchPartners and showWatchPartners.
server/api/watch-partners/index.post.ts Creates watch partners for the authenticated user.
server/api/watch-partners/index.get.ts Lists watch partners for the authenticated user.
server/api/watch-partners/[id].delete.ts Deletes a watch partner by id for the authenticated user.
server/api/shows.get.ts Adds watchingWith filtering to My Shows API query.
server/api/show/[id].patch.ts Accepts watchPartnerIds to update show co-watching partners.
server/api/show/[id].get.ts Returns watchingWith on show detail.
drizzle/0002_watch_partners.sql Migration creating the new partner tables and index.
app/pages/watch-partners.vue New “Friends & Family” page to manage partners.
app/pages/show/[id].vue Multi-select UI to assign partners to a show.
app/pages/my-shows.vue Adds co-watching filter dropdown and passes query param to API.
app/components/nav.vue Adds nav link to the new “Friends & Family” page.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread server/api/show/[id].get.ts
Comment thread server/api/show/[id].patch.ts Outdated
Comment thread server/api/show/[id].patch.ts Outdated
Comment thread server/api/show/[id].patch.ts Outdated
Comment thread server/api/watch-partners/[id].delete.ts
Comment thread app/pages/my-shows.vue Outdated
Comment thread app/pages/watch-partners.vue Outdated
Comment thread server/api/show/[id].get.ts Outdated
Comment thread server/db/schema.ts
Comment thread drizzle/0002_watch_partners.sql
joebailey26 and others added 7 commits May 14, 2026 20:43
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 17 out of 18 changed files in this pull request and generated 11 comments.

Comment thread server/db/schema.ts
Comment thread server/api/watch-partners/[id].delete.ts
Comment thread server/api/watch-partners/index.post.ts
Comment thread server/api/show/[id].patch.ts Outdated
Comment thread server/api/show/[id].patch.ts Outdated
Comment thread app/components/showButtons.vue Outdated
Comment thread app/pages/show/[id].vue Outdated
Comment thread app/pages/watch-partners.vue Outdated
Comment thread server/api/show/[id].patch.ts
Comment thread drizzle/0002_watch_partners.sql Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 21 out of 29 changed files in this pull request and generated 6 comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

Comment thread server/api/watch-partners/[id].delete.ts
Comment thread server/api/show/[id].patch.ts
Comment thread server/api/shows.get.ts
Comment thread app/assets/scss/global.scss
Comment thread app/pages/show/[id].vue
Comment thread app/pages/my-shows.vue
@joebailey26
joebailey26 merged commit 8701188 into master May 19, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants