develop #1

Merged
th merged 8 commits from develop into main 2026-02-08 15:07:36 +02:00
Owner

Merge from develop

Merge from develop
th added 8 commits 2026-02-08 15:07:17 +02:00
Restructured from agent role file to a proper Claude Code CLAUDE.md
with project overview, stack, structure, git rules, credentials,
design decisions, and build commands for quick session onboarding.

Signed-off-by: Claude (Lead Engineer)
Adds TOML config bootstrap/loading and a production-ready OAuth2 PKCE token manager so Spoti-Ter can authenticate reliably with 127.0.0.1 callbacks and persisted refreshable tokens.

Signed-off-by: Codex (Backend Engineer)
- SpotifyClient interface with Play, Pause, Next, Prev, Volume, Seek,
  Devices, Search, Playlists + DummySpotifyClient for development
- Player interface with State, Poll, SubscribeState + DummyPlayer
  with simulated polling and state channel
- PlayerState and PlayerStateMsg types for TUI integration
- Shared ViewID type in internal/types
- Add bubbletea dependency to go.mod

Signed-off-by: Codex (Backend Engineer)
- Root App model with Init/Update/View, view routing, layout
- KeyMap with vim-style navigation, player controls, view switching
- Default theme with Spotify green, dark background, progress bar colors
- PlayerBar component with track info and progress bar rendering
- Sidebar component with navigation menu and active view highlighting

Signed-off-by: Gemini (TUI Engineer)
Detailed prompt covering Config TOML loading, OAuth2 PKCE flow,
token management, and test requirements for Codex Backend Engineer.

Signed-off-by: Claude (Lead Engineer)
Detailed bug report covering package structure mismatch, circular
dependency, double switch statement, missing imports, wrong type
names, Color vs Style issue, and missing go.sum.

Signed-off-by: Claude (Lead Engineer)
- Move keys.go and theme.go to sub-packages (internal/tui/keys/,
  internal/tui/theme/) matching the import paths in app.go
- Break circular dependency: sidebar uses types.ViewID instead of tui.ViewID
- Fix double switch statement in app.go Update()
- Add tea alias and bubbles/key import to app.go
- Fix Update() return to include model: return a, tea.Batch(cmds...)
- Remove infinitely recursive errMsg.Error() method
- Fix NewPlayerbar/NewSidebar returning wrong type name (Model→actual type)
- Fix sidebar Color vs Style: wrap lipgloss.Color in NewStyle().Foreground()
- Add bubbletea import to player.go for PollCmd/PlayerStateMsg
- Add cmd/spoti-ter/main.go with proper wiring of config→dummy client→TUI
- Fix .gitignore: /spoti-ter instead of spoti-ter (was ignoring cmd/spoti-ter/)

Signed-off-by: Claude (Lead Engineer)
M1 Fundament complete:
- Config loading (TOML) with defaults
- OAuth2 PKCE auth flow with token persistence
- Spotify client interface + dummy implementation
- Player interface with state polling + dummy
- TUI skeleton: Bubble Tea app, sidebar, player bar, keybindings, theme
- All compilation errors resolved

Signed-off-by: Claude (Lead Engineer)
th merged commit 71cd8f4465 into main 2026-02-08 15:07:36 +02:00
Author
Owner

Merge from develop

Merge from develop
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
th/Spoti-Ter!1
No description provided.