You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: update golangci-lint version and improve lint handling in CI
fix: change skip-dirs to exclude-dirs in golangci configuration
chore: remove deprecated .openboot.yml and .openboot.yml.example files
docs: update CHANGELOG for command removals and changes in v1.0
docs: enhance CLAUDE.md with project structure and guidelines
feat: add context support to LoginInteractive and related functions
test: refactor login tests to use context and improve coverage
fix: improve error handling in GetInstalledPackages
feat: implement context handling in CLI commands for better cancellation
test: enhance snapshot tests to verify health records for failed steps
refactor: streamline API URL validation to prevent prefix-bypass attacks
chore: add quality score JSON file for tracking code quality metrics
-**Paths**: `os.UserHomeDir()` — never hardcode `~` or `/Users/...`.
96
96
-**State**: everything user-local goes under `~/.openboot/` (auth, cache, snapshots, state).
97
-
-**Concurrency**: bounded `sync.WaitGroup` — brew uses max 4 workers. No unbounded goroutines.
97
+
-**Concurrency**: bounded `sync.WaitGroup` — brew install is sequential with retry; `GetInstalledPackages`uses 2 goroutines for formula+cask list. No unbounded goroutines.
98
98
-**Embedded data**: `//go:embed data/*.yaml` loaded in `init()`.
99
99
-**Tests**: table-driven, `testify/require` for fatal, `testify/assert` for non-fatal. L1 uses the `Runner` interface to fake subprocess calls — no real network, no real fork.
100
100
-**Commits**: Conventional (`feat:` / `fix:` / `docs:` / `refactor:` / `test:` / `chore:` / `ci:`), one thing per commit.
0 commit comments