docs: start milestone v1.1 Features & Extensibility
This commit is contained in:
+25
-2
@@ -44,7 +44,14 @@ The music player works reliably and feels solid. Every interaction is correct, r
|
|||||||
|
|
||||||
### Active
|
### Active
|
||||||
|
|
||||||
(No active requirements — next milestone not yet scoped. Run `/gsd-new-milestone` to define.)
|
- [ ] Tag editing — edit track metadata (title, artist, album, etc.) from within the app
|
||||||
|
- [ ] Scan cancellation — cancel in-progress library scans
|
||||||
|
- [ ] Smart playlists — auto-generated playlists with simple filter rules (genre, year, play count, etc.)
|
||||||
|
- [ ] Customizable keyboard shortcuts — configurable key bindings for common player actions
|
||||||
|
- [ ] Gapless playback + crossfade — seamless track transitions with optional crossfade setting
|
||||||
|
- [ ] MusicBrainz browser — read-only catalog browsing (artists, discographies, album editions, track listings)
|
||||||
|
- [ ] Layout customization system — section-based UI customization, components declare size constraints, users configure per-section
|
||||||
|
- [ ] Plugin system — full-access API for UI components and backend hooks, extensibility foundation
|
||||||
|
|
||||||
### Out of Scope
|
### Out of Scope
|
||||||
|
|
||||||
@@ -56,6 +63,22 @@ The music player works reliably and feels solid. Every interaction is correct, r
|
|||||||
- ORM or query builder — would fight existing sqlc architecture
|
- ORM or query builder — would fight existing sqlc architecture
|
||||||
- Connection pooling for SQLite — meaningless with SetMaxOpenConns(1)
|
- Connection pooling for SQLite — meaningless with SetMaxOpenConns(1)
|
||||||
|
|
||||||
|
## Current Milestone: v1.1 Features & Extensibility
|
||||||
|
|
||||||
|
**Goal:** Add core missing features and build the foundations for a customizable, extensible music player.
|
||||||
|
|
||||||
|
**Target features:**
|
||||||
|
- Tag editing (track metadata editing from within the app)
|
||||||
|
- Scan cancellation (cancel in-progress library scans)
|
||||||
|
- Smart playlists (simple filter rules — genre, year, play count, etc.)
|
||||||
|
- Customizable keyboard shortcuts (configurable key bindings)
|
||||||
|
- Gapless playback + crossfade (seamless transitions, optional crossfade)
|
||||||
|
- MusicBrainz browser (read-only catalog: artists, discographies, album editions)
|
||||||
|
- Layout customization system (MusicBee-style section-based UI configuration)
|
||||||
|
- Plugin system (full-access API for UI + backend extensibility)
|
||||||
|
|
||||||
|
**"Done" criteria:** Core features complete and working. Big features (layout, plugins, MusicBrainz) have working foundations — functional but not necessarily feature-complete.
|
||||||
|
|
||||||
## Context
|
## Context
|
||||||
|
|
||||||
**Current state (v1.0 shipped 2026-03-05):**
|
**Current state (v1.0 shipped 2026-03-05):**
|
||||||
@@ -101,4 +124,4 @@ The music player works reliably and feels solid. Every interaction is correct, r
|
|||||||
| Design tokens via :host scope | Component-level token scope matches Lit's shadow DOM encapsulation | ✓ Good — consistent visual language achieved |
|
| Design tokens via :host scope | Component-level token scope matches Lit's shadow DOM encapsulation | ✓ Good — consistent visual language achieved |
|
||||||
|
|
||||||
---
|
---
|
||||||
*Last updated: 2026-03-05 after v1.0 milestone*
|
*Last updated: 2026-03-06 after v1.1 milestone start*
|
||||||
|
|||||||
+20
-39
@@ -1,29 +1,31 @@
|
|||||||
---
|
---
|
||||||
gsd_state_version: 1.0
|
gsd_state_version: 1.0
|
||||||
milestone: v1.0
|
milestone: v1.1
|
||||||
milestone_name: Consolidation
|
milestone_name: Features & Extensibility
|
||||||
status: shipped
|
status: defining_requirements
|
||||||
last_updated: "2026-03-05"
|
last_updated: "2026-03-06"
|
||||||
progress:
|
progress:
|
||||||
total_phases: 8
|
total_phases: 0
|
||||||
completed_phases: 8
|
completed_phases: 0
|
||||||
total_plans: 17
|
total_plans: 0
|
||||||
completed_plans: 17
|
completed_plans: 0
|
||||||
---
|
---
|
||||||
|
|
||||||
# YellowJacket — Project State
|
# YellowJacket — Project State
|
||||||
|
|
||||||
## Project Reference
|
## Project Reference
|
||||||
|
|
||||||
See: .planning/PROJECT.md (updated 2026-03-05)
|
See: .planning/PROJECT.md (updated 2026-03-06)
|
||||||
|
|
||||||
**Core value:** The music player works reliably and feels solid — every interaction is correct, responsive, and trustworthy.
|
**Core value:** The music player works reliably and feels solid — every interaction is correct, responsive, and trustworthy.
|
||||||
**Current focus:** v1.0 Consolidation shipped. Planning next milestone.
|
**Current focus:** v1.1 Features & Extensibility — defining requirements
|
||||||
|
|
||||||
## Current Position
|
## Current Position
|
||||||
|
|
||||||
**Milestone:** v1.0 Consolidation — SHIPPED 2026-03-05
|
Phase: Not started (defining requirements)
|
||||||
**Next:** Run `/gsd-new-milestone` to define next milestone
|
Plan: —
|
||||||
|
Status: Defining requirements
|
||||||
|
Last activity: 2026-03-06 — Milestone v1.1 started
|
||||||
|
|
||||||
## Accumulated Context
|
## Accumulated Context
|
||||||
|
|
||||||
@@ -44,37 +46,16 @@ Decisions from v1.0 are archived in PROJECT.md Key Decisions table. Key patterns
|
|||||||
- modernc.org/libc version must match exactly when updating modernc.org/sqlite
|
- modernc.org/libc version must match exactly when updating modernc.org/sqlite
|
||||||
- `@lit-labs/signals` is experimental (v0.2.0) — not blocking but noted
|
- `@lit-labs/signals` is experimental (v0.2.0) — not blocking but noted
|
||||||
|
|
||||||
### Quick Tasks Completed (v1.0)
|
|
||||||
|
|
||||||
| # | Description | Date | Commit |
|
|
||||||
|---|-------------|------|--------|
|
|
||||||
| 001 | Multi-playlist import support | 2026-02-28 | 50c8a33 |
|
|
||||||
| 002 | Auto-rename duplicate playlists on import | 2026-02-28 | 8ba8bbe |
|
|
||||||
| 003 | Multi-select playlist view + context menu delete | 2026-02-28 | c92ced2 |
|
|
||||||
| 004 | Set as default playlist context menu | 2026-02-28 | 9971b63 |
|
|
||||||
| 005 | Sort dropdown for playlist view | 2026-03-01 | 5c07485 |
|
|
||||||
| 006 | Remove list icon, add favorites icon | 2026-03-01 | 3c19766 |
|
|
||||||
| 007 | Pin default playlist to top | 2026-03-01 | e6378e1 |
|
|
||||||
| 008 | Duplicate tracks dialog | 2026-03-01 | 917a79a |
|
|
||||||
| 009 | Fix queue panel scroll bar not following mouse | 2026-03-05 | ebde5e5 |
|
|
||||||
| 010 | Fix duplicate album merging bug (composite unique constraint) | 2026-03-05 | d43ba7b |
|
|
||||||
| 010b | Fix contentless FTS5 DELETE error blocking rescan | 2026-03-05 | 8e9a616 |
|
|
||||||
| 011 | Fix neovim crash during library scan (configurable log level) | 2026-03-05 | c45bca4 |
|
|
||||||
| 012 | Add favorite icon to album dropdown track rows | 2026-03-05 | 12a0bbc |
|
|
||||||
| 013 | Fix all golangci-lint issues (zero issues) | 2026-03-05 | e1a95e6 |
|
|
||||||
| 014 | Fix queue/player desync after track load failure | 2026-03-05 | 2820de2 |
|
|
||||||
| 015 | Fix audio glitches with BufferedStreamer read-ahead | 2026-03-05 | 8a0b16a |
|
|
||||||
|
|
||||||
## Session Continuity
|
## Session Continuity
|
||||||
|
|
||||||
### Last Session
|
### Last Session
|
||||||
|
|
||||||
**Date:** 2026-03-05
|
**Date:** 2026-03-06
|
||||||
**What happened:** Quick task 15 — fixed audio glitches and skips by adding a BufferedStreamer with goroutine read-ahead between decoder/resampler and speaker output. Ring buffer provides 2s of audio runway. Speaker buffer increased from 100ms to 200ms. 5 unit tests, all 12 player tests pass.
|
**What happened:** Started milestone v1.1 Features & Extensibility. Updated PROJECT.md with new milestone goals and active requirements.
|
||||||
**Where we stopped:** Quick task 15 complete. All player tests pass, go build/vet clean.
|
**Where we stopped:** Defining requirements for v1.1.
|
||||||
**Next action:** Continue with next task
|
**Next action:** Complete requirements definition, create roadmap.
|
||||||
|
|
||||||
---
|
---
|
||||||
*State initialized: 2026-02-27*
|
*State initialized: 2026-02-27*
|
||||||
Last activity: 2026-03-05 - Fix audio glitches with BufferedStreamer read-ahead
|
Last activity: 2026-03-06 - Milestone v1.1 started
|
||||||
*Last updated: 2026-03-05*
|
*Last updated: 2026-03-06*
|
||||||
|
|||||||
Reference in New Issue
Block a user