Skip to content

Build Team Project social graph and semantic Tailwind system - #509

Merged
doodlewind merged 2 commits into
mainfrom
feat/social-team-projects
Jul 26, 2026
Merged

Build Team Project social graph and semantic Tailwind system#509
doodlewind merged 2 commits into
mainfrom
feat/social-team-projects

Conversation

@doodlewind

@doodlewind doodlewind commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add GitHub-style Project Stars, private Watching, and person Follow relationships with public list surfaces and strict Team privacy boundaries
  • let a personally authenticated CLI user publish Public, Link-only, or Team-only Sessions into a writable Team-owned Project while preserving the individual author
  • add the guarded production migration that moves the reviewed Spool corpus to @paperboy/spool, assigns the canonical doodlewind handle to doodlewind@qq.com, and retains both WorkOS identities
  • migrate product styling to a Tailwind v4 semantic-token interface and fix centered avatar fallbacks
  • expose Starred/Watching Project scopes, Profile social tabs, Project stargazers, and Team Project public projections

Trust and lifecycle behavior

  • a Project is Star-eligible only while it has at least one live Public Session
  • private Team Projects remain member-only and may be Watched, never Starred
  • withdrawing/moving the last Public Session clears Stars and outsider Watches atomically; current Team-member Watches remain private
  • public Project metadata, social state, and stargazers revalidate their route, tenant, viewer, and live projection in the same SQLite snapshot
  • membership removal, user deletion, Project archive, and Team archive clean up dependent relations
  • watchers are never public; stargazers and Follow lists are public only where documented

CLI behavior

  • spool share --project paperboy/spool --public publishes under the Team-owned Project while attributing the signed-in member
  • --public, --link-only, and Team-only visibility are independent of Project ownership
  • interactive Project creation is materialized only after disclosure and confirmation; cancellation produces no remote Project, upload, or subscription write
  • subscriptions preserve the Team owner across auto-publish

Verification

  • pnpm run typecheck
  • pnpm run test — 1,969 passed, 1 skipped
  • pnpm run build
  • pnpm run check
  • pnpm --filter @spool/backend run schema:smoke — 16 migrations
  • pnpm --filter @spool/backend test — 564 passed, including a real SQLite stale-projection regression
  • pnpm --filter @spool/web test:e2e — 40 passed across 320/451/768/1024px and Session loading/reader flows
  • git diff --check

@doodlewind
doodlewind marked this pull request as ready for review July 26, 2026 09:58
@doodlewind
doodlewind added this pull request to the merge queue Jul 26, 2026
Merged via the queue into main with commit 8ff6463 Jul 26, 2026
5 checks passed
@doodlewind
doodlewind deleted the feat/social-team-projects branch July 26, 2026 10:00
@doodlewind doodlewind mentioned this pull request Jul 26, 2026
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