mirror of
https://github.com/got-feedBack/feedBack.git
synced 2026-07-19 19:31:26 +00:00
* feat(career): career plugin — stars from song_stats, venue tiers, pack downloads (career mode PR2) Bundled plugin: per-song stars from best_accuracy (60/75/85% → 1/2/3★), cumulative stars unlock bar → club → arena (data-driven venues.json). Venue packs (UE-rendered crowd loops) download on demand to CONFIG_DIR/plugin_uploads/career/ on a background thread with sha256 + zip-slip validation, served via FileResponse. Career screen (promoted sidebar entry) shows progress and pushes the active venue's manifest into the crowd video layer (v3VenueCrowd, PR1) — degrades cleanly when either side is absent. Pack URLs land in venues.json in PR3. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(career): keep manifest cleanup path alive on delete; badge only for installed venues Codex preflight: nulling _appliedManifestVenue on delete skipped pushCrowdManifest's setManifest(null) cleanup, leaving the crowd layer on a deleted pack; and the 'playing here' badge showed for an override venue whose pack was removed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(career): generation-guard in-flight manifest fetches Codex preflight: a manifest fetch resolving after a newer refresh (pack deleted, venue switched) could re-apply a stale pack over the user's newer selection — fetches now carry a generation token and bail when superseded. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(career): exclude orphaned song_stats from star totals Codex preflight: scans hide rather than delete stats of removed songs, so stars now apply the same existing-song filter other stats surfaces use (filename IN (SELECT filename FROM songs)). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * feat(career): 50/150 star thresholds + star collection overview Byron's progression tuning: club at 50★, arena at 150★. /state now returns star_detail rows (title/artist joined from the library, stars, best accuracy, next-star threshold) sorted closest-to-next-star first, and the career screen renders a collection panel: tier summary plus a per-song list with a 'N% to next star' practice hint. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * feat(career): venue select/unselect UX, intro manifest support, fullmatch guards - 'Play here' now also defaults the visualization to Venue (remembering the prior viz); active venues show 'Leave venue' which restores it and sets the '__none__' override so no installed venue silently reapplies. - Pack manifests may ship an intro block (flyover video + ambience mp3); files validate like loops/stingers, .mp3 added to the serving whitelist. - Codex preflight: whitelist regexes use fullmatch (trailing-newline names could validate but 500 on serving). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(career): let pushCrowdManifest clear the manifest on Leave venue Codex preflight: nulling _appliedManifestVenue before refresh skipped the setManifest(null) cleanup branch, leaving the crowd playing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(career): refresh tailwind output --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
68 lines
1.4 KiB
Plaintext
68 lines
1.4 KiB
Plaintext
__pycache__/
|
|
*.pyc
|
|
.venv/
|
|
venv/
|
|
dist/
|
|
build/
|
|
*.egg-info/
|
|
*.log
|
|
.env*
|
|
.DS_Store
|
|
.vscode/
|
|
data/web_library.db
|
|
static/*.ogg
|
|
static/*.mp3
|
|
static/*.wav
|
|
static/art/
|
|
static/audio_*
|
|
plugins/*/
|
|
!plugins/__init__.py
|
|
# Core plugins ship in-tree. They're plugins-as-plugins (plugin loader
|
|
# treats them identically to user-installed ones) but are bundled with
|
|
# the default container image and marked `"bundled": true` in their
|
|
# manifest. Add new core plugins as `!plugins/<id>/` exceptions.
|
|
!plugins/achievements/
|
|
!plugins/achievements/**
|
|
plugins/achievements/__pycache__/
|
|
!plugins/career/
|
|
!plugins/career/**
|
|
plugins/career/__pycache__/
|
|
!plugins/highway_3d/
|
|
!plugins/highway_3d/**
|
|
plugins/highway_3d/__pycache__/
|
|
!plugins/folder_library/
|
|
!plugins/folder_library/**
|
|
plugins/folder_library/__pycache__/
|
|
!plugins/app_tour_library/
|
|
!plugins/app_tour_library/**
|
|
!plugins/app_tour_settings/
|
|
!plugins/app_tour_settings/**
|
|
!plugins/capability_inspector/
|
|
!plugins/capability_inspector/**
|
|
!plugins/minigames/
|
|
!plugins/minigames/**
|
|
plugins/minigames/__pycache__/
|
|
!plugins/tuner/
|
|
!plugins/tuner/**
|
|
plugins/tuner/__pycache__/
|
|
!plugins/input_setup/
|
|
!plugins/input_setup/**
|
|
!plugins/drum_highway_3d/
|
|
!plugins/drum_highway_3d/**
|
|
plugins/drum_highway_3d/__pycache__/
|
|
!plugins/keys_highway_3d/
|
|
!plugins/keys_highway_3d/**
|
|
plugins/keys_highway_3d/__pycache__/
|
|
node_modules/
|
|
test-results/
|
|
playwright-report/
|
|
|
|
/dlc
|
|
|
|
.vscode
|
|
Thumbs.db
|
|
*.tmp
|
|
*.swp
|
|
.idea/
|
|
plugins/support_creators
|