dev #2

Merged
boris merged 11 commits from dev into main 2026-04-02 13:26:44 -04:00
Owner
No description provided.
boris added 11 commits 2026-04-02 13:26:40 -04:00
Add Steam library import via OpenID
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
a4c31bf40b
- Steam OpenID flow: user authenticates with Steam, we get their Steam ID
- Server-side API key fetches their owned games with playtime
- Import page shows full library, marks already-imported games
- Imported games land in backlog as GAMES items with hours_played set
- STEAM_API_KEY env var plumbed into both prod and dev containers

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add HowLongToBeat estimates to game cards
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
ffcd8c40b4
- Fetch HLTB main/extra/completionist hours when a game item is saved
- Re-fetch only when name or category changes on edit
- Steam imports also fetch HLTB for each selected game
- Cards show compact HLTB row: "HLTB: 40h · +extra 60h · 100% 100h"
- Edit form shows HLTB breakdown as a hint next to Total hours field

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Fix howlongtobeatpy version constraint (max is 1.0.21)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
095614cb65
Add completed/abandoned shelves with status transitions
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
da11a056ed
Items can be moved to Completed or Abandoned via card buttons.
Only active items appear in the default/category tabs; completed and
abandoned items are visible only in their respective shelf tabs.
Restore button moves items back to active.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add unending category for session-based games
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
b765067c5b
For games like Dota 2 that have no completion state — shows hours
played on the card, reuses the games fields in the form (hours played
/ total hours), and gets its own cyan badge. No DB column change,
only choices metadata update.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Fix unending: shelf status, not category
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2e0ca22dd9
Unending belongs in STATUS_CHOICES alongside completed/abandoned.
Adds an Unending shelf tab and an ∞ button on active game cards.
Reverts the incorrect category addition from the previous commit.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add merge migration for conflicting 0006 leaves
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
05235d234e
0006_item_category_unending was already applied to the dev DB before
the rename commit, causing a conflict with 0006_item_status_unending.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Fix migration graph: restore missing 0006 file, add 0008 cleanup
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
23eefc269b
0007_merge referenced 0006_item_category_unending which git had
renamed, causing NodeNotFoundError on clean DBs. Restores the file
so both 0006 leaves exist, then 0008 reverts the stale category
choices back to the correct set (no unending in category).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Refactor item form visibility to data-attribute driven JS
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
b289e7c7fe
Replace hardcoded id-based section lookup with declarative rules:
- data-show-category="games|books|films" on sections
- data-hide-status="unending" on individual fields

JS now has a single updateVisibility() that evaluates attributes.
Adding new conditions only requires touching HTML, not JS.

Also hides Progress and Total Hours for unending items.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add completion animation and ding sound on Done button
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
b723214c86
Intercepts the Done form submit, plays a two-note ding via Web Audio
API (no audio file), animates the card with a white glow + scale, then
submits after 680ms. Only fires for completion, not abandon or delete.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
added user profile page
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
457b8c8443
boris merged commit 39155b12b8 into main 2026-04-02 13:26:44 -04:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: boris/k-boris-website#2