Skip to content

Unify workspace state into registry, add userconfig package - #10

Merged
htcarr3 merged 2 commits into
mainfrom
change-ws-location
Feb 15, 2026
Merged

Unify workspace state into registry, add userconfig package#10
htcarr3 merged 2 commits into
mainfrom
change-ws-location

Conversation

@htcarr3

@htcarr3 htcarr3 commented Feb 15, 2026

Copy link
Copy Markdown
Contributor

What

Consolidates three storage locations into two following XDG conventions, deletes internal/state/, and extracts opener config into a new internal/userconfig/ package.

Why

The previous layout polluted .git/ with per-repo state files, mixed config with state, and required N+1 file reads for global operations (e.g. dashboard, port allocation). This change gives us a single unified file for all repo + workspace state.

How

  • ~/.local/state/fr8/repos.json — unified registry with embedded workspaces (was split across ~/.config/fr8/repos.json + per-repo .git/fr8.json)
  • ~/.config/fr8/config.json — user preferences like openers (was ~/.config/fr8/openers.json)
  • Workspace CRUD methods (AddWorkspace, RemoveWorkspace, FindWorkspace, etc.) now live on registry.Repo
  • internal/opener/ stripped down to just Run() — config management moved to internal/userconfig/
  • internal/state/ deleted entirely
  • All ~20 command files updated to use registry for workspace operations
  • FR8_STATE_DIR and FR8_CONFIG_DIR env var overrides supported

Consolidate three storage locations into two following XDG conventions:
- ~/.local/state/fr8/repos.json — unified registry with embedded workspaces
- ~/.config/fr8/config.json — user preferences (openers)

Delete internal/state/ package. Workspace CRUD now lives on registry.Repo.
Extract opener config into internal/userconfig/ package. Strip
internal/opener/ down to just Run().
@htcarr3
htcarr3 merged commit d8c74cf into main Feb 15, 2026
6 checks passed
@htcarr3
htcarr3 deleted the change-ws-location branch February 26, 2026 20:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant