audio streaming app plyr.fm
38
fork

Configure Feed

Select the types of activity you want to include in your feed.

docs: update STATUS.md with Jan 8-9 work (#743)

- track edit UX improvements (PRs #741-742)
- timestamp deep links (PRs #739-740)
- beartype fix, shutdown timeout fix

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

authored by

nate nowack
Claude Opus 4.5
and committed by
GitHub
af81e761 06cdcefd

+41 -2
+41 -2
STATUS.md
··· 79 79 80 80 --- 81 81 82 + #### track edit UX improvements (PRs #741-742, Jan 9) 83 + 84 + **why**: the portal track editing experience had several UX issues - users couldn't remove artwork (only replace), no preview when selecting new images, and buttons were poorly styled icon-only squares with overly aggressive hover effects. 85 + 86 + **artwork management** (PR #742): 87 + - add ability to **remove track artwork** via new `remove_image` form field on `PATCH /tracks/{id}` 88 + - show **image preview** when selecting new artwork before saving 89 + - hover overlay on current artwork with trash icon to remove 90 + - "undo" option when artwork is marked for removal 91 + - clear status labels: "current artwork", "new artwork selected", "artwork will be removed" 92 + 93 + **button styling** (PR #742): 94 + - replace icon-only squares with labeled pill buttons (`edit`, `delete`) 95 + - subtle outlined save/cancel buttons in edit mode 96 + - fix global button hover styles bleeding into all buttons (scoped to form submit only) 97 + 98 + **shutdown fix** (PR #742): 99 + - add 2s timeouts to docket worker and service shutdown 100 + - prevents backend hanging on Ctrl+C or hot-reload during development 101 + 102 + **beartype fix** (PR #741): 103 + - `starlette.UploadFile` vs `fastapi.UploadFile` type mismatch was causing 500 errors on image upload 104 + - fixed by importing UploadFile from starlette in metadata_service.py 105 + 106 + --- 107 + 82 108 #### auth stabilization (PRs #734-736, Jan 6-7) 83 109 84 110 **why**: multi-account support introduced edge cases where auth state could become inconsistent between frontend components, and sessions could outlive their refresh tokens. ··· 97 123 - `R2Storage.save()` was rejecting `BytesIO` objects due to beartype's strict `BinaryIO` protocol checking 98 124 - changed type hint to `BinaryIO | BytesIO` to explicitly accept both 99 125 - found via Logfire: only 2 failures in production, both on Jan 3 126 + 127 + --- 128 + 129 + #### timestamp deep links (PRs #739-740, Jan 8) 130 + 131 + **timestamped comment sharing** (PR #739): 132 + - timed comments now show share button on hover 133 + - copies URL with `?t=` parameter (e.g., `plyr.fm/track/123?t=45`) 134 + - visiting timestamped URL auto-seeks to that position on play 135 + 136 + **autoplay error suppression** (PR #740): 137 + - suppress browser autoplay errors when deep linking to timestamps 138 + - browsers block autoplay without user interaction; now fails silently 100 139 101 140 --- 102 141 ··· 199 238 200 239 ### current focus 201 240 202 - stabilization and polish after multi-account release. monitoring production for issues. 241 + stabilization and UX polish. track editing experience improved, shutdown reliability fixed. 203 242 204 243 **end-of-year sprint [#625](https://github.com/zzstoatzz/plyr.fm/issues/625) shipped:** 205 244 - moderation consolidation: sensitive images moved to moderation service (#644) ··· 368 407 369 408 --- 370 409 371 - this is a living document. last updated 2026-01-07. 410 + this is a living document. last updated 2026-01-09.