Skip to content

feat: clout system with tier-based queue pacing#106

Merged
GraysonCAdams merged 20 commits intomainfrom
docs/queue-feature
Mar 11, 2026
Merged

feat: clout system with tier-based queue pacing#106
GraysonCAdams merged 20 commits intomainfrom
docs/queue-feature

Conversation

@GraysonCAdams
Copy link
Collaborator

Summary

  • Add clout (reputation) scoring system that adjusts queue pacing based on clip engagement
  • Clout tiers (Fresh/Rising/Viral/Iconic) control burst size, cooldown, and queue depth
  • Server-driven tier change detection with 3-day cooldown and cross-device sync
  • CloutChangeModal with tier cycling animation, drag-to-dismiss, and rank-up tips
  • Clout tier badge on profile page (tap to view rank details)
  • Host toggle to enable/disable reputation adjustments in share pacing settings
  • Push notification improvements: initials avatar fallback, deep-link fix for backgrounded PWAs
  • Extract QueueCloutBanner and CloutTipsView components for max-lines compliance

Test plan

  • Share clips and verify clout score updates after 48h maturation
  • Verify tier change modal appears on rank change with 3-day cooldown
  • Test clout toggle in share pacing settings (enable/disable)
  • Confirm profile page shows tier badge when queue pacing is active
  • Test drag-to-dismiss and close button on CloutChangeModal
  • Verify push notifications work with initials avatar fallback
  • Test deep-link from notification tap on backgrounded PWA

Add queue management endpoints, clip_queue table, share pacing group
columns, queued clip status, and new files to the architecture tree.
Computes rolling engagement score from last 10 matured clips.
Tiers (Fresh/Rising/Viral/Iconic) adjust cooldown multiplier,
burst size, and queue depth limits per user.
Shows tier transition when rank changes, with a "How to rank up"
button that fetches tips and lists clips with zero engagement.
Deferred display avoids conflicts with sheets/dialogs.
Displays tier icon, name, effective cooldown/burst, and
engagement dot visualization at the top of the queue sheet.
Service worker's postMessage is silently dropped when the PWA client is
frozen by the OS. Stash the notification URL in Cache API so the client
can pick it up via visibilitychange when the app resumes. Also defer
the feed's deep-link overlay open to avoid pushState before router init.
Add cloutEnabled toggle to groups table and cloutTier/cloutChangeShownAt
tracking columns to users table for server-side tier change detection.
- Conditionally skip clout scoring when cloutEnabled is off in share-limit
- Add tier change detection with 3-day cooldown in clout API
- Add POST /api/clout endpoint to acknowledge tier change modals
- Add dev-only ?tier= query param for testing
- Support cloutEnabled in share-pacing PATCH endpoint
Extract tips/breakdown view into CloutTipsView component to stay under
max-lines limit. Add tier cycling animation, drag-to-dismiss gesture,
and close button to CloutChangeModal.
Add reputation adjustments toggle in queue pacing settings, allowing
the host to enable/disable clout-based pacing. Pass cloutEnabled prop
from settings page.
Display clout tier icon next to username on profile page. Tapping the
badge opens the CloutChangeModal for viewing current rank details.
Replace localStorage-based tier tracking with server-side tier change
detection. Acknowledge tier changes via POST /api/clout to sync across
devices and enforce 3-day cooldown.
Move clout banner template and styles into a dedicated component to
keep QueueSheet under max-lines limit.
@GraysonCAdams GraysonCAdams enabled auto-merge (squash) March 11, 2026 02:09
Update the vulnerable tar package inside npm's own node_modules in the
Node.js base image. The override in package.json was ineffective since
tar ships with npm itself, not as a project dependency.
Revert Dockerfile tar patch that broke the image build. Instead,
suppress the upstream npm tar CVE in trivyignore until the Node.js
base image is updated.
auto-merge was automatically disabled March 11, 2026 02:25

Pull Request is not mergeable

@GraysonCAdams GraysonCAdams merged commit 518ae8e into main Mar 11, 2026
21 checks passed
@GraysonCAdams GraysonCAdams deleted the docs/queue-feature branch March 11, 2026 02:31
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