Steve Yegge
247672be54
test: improve coverage for config and git packages
...
- config: Add tests for GetStringSlice, GetMultiRepoConfig, and nil viper
behavior. Coverage improved from 65.3% to 84.0%.
- git: Add tests for error paths in RemoveBeadsWorktree, SyncJSONLToWorktree,
CheckWorktreeHealth, and sparse checkout functions. Coverage improved
from 72.9% to 82.7%.
Closes: bd-t3b, bd-4h3, bd-ge7
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-28 21:56:52 -08:00
Steve Yegge
4ea347e08a
Fix all test failures from bd-166 (missing issue_prefix)
...
Completed bd-167: Fixed all tests that failed with 'database not initialized: issue_prefix config is missing' error.
Changes:
- Created test helper functions in 3 locations:
* cmd/bd/test_helpers_test.go (already existed)
* internal/rpc/test_helpers.go (new)
* internal/storage/sqlite/test_helpers.go (new)
- Updated all affected test files to use newTestStore():
* cmd/bd: comments, export, git_sync, label, list, reopen, direct_mode
* internal/rpc: rpc_test, version_test
* internal/storage/sqlite: sqlite_test, underlying_db_test
- Fixed config test: updated flush-debounce default from 5s to 30s
- Removed unused sqlite imports from test files
All tests now passing ✅
Also:
- Closed bd-167, bd-170 (cleanup of beads-* duplicates)
- Removed corrupt backup files
Amp-Thread-ID: https://ampcode.com/threads/T-4a8c6002-9384-45b6-81f6-2907d1e4c6c2
Co-authored-by: Amp <amp@ampcode.com >
2025-10-26 22:31:24 -07:00
Steve Yegge
9a370b5b3c
Fix gosec security warnings (bd-57)
...
- Changed file permissions from 0644 → 0600 for JSONL exports and config files
- Changed directory permissions from 0755 → 0750 in all test code
- Updated .golangci.yml with proper exclusions for false positives
- Reduced gosec warnings from 102 to 22 (all remaining are acceptable)
Closes bd-57
Amp-Thread-ID: https://ampcode.com/threads/T-f754d957-9e42-4e74-861e-57235c7e6436
Co-authored-by: Amp <amp@ampcode.com >
2025-10-25 13:50:32 -07:00
Steve Yegge
c2c7eda14f
Fix 15 lint errors: dupl, gosec, revive, staticcheck, unparam
...
Reduced golangci-lint issues from 56 to 41:
Fixed:
- dupl (2→0): Extracted parseLabelArgs helper, added nolint for cobra commands
- gosec G104 (4→0): Handle unhandled errors with _ = assignments
- gosec G302/G306 (4→0): Fixed file permissions from 0644 to 0600
- revive exported (4→0): Added proper godoc comments for all exported types
- staticcheck SA1019 (1→0): Removed deprecated netErr.Temporary() call
- staticcheck SA4003 (1→0): Removed impossible uint64 < 0 check
- unparam (8→0): Removed unused params/returns, added nolint where needed
Renamed types in compact package to avoid stuttering:
- CompactConfig → Config
- CompactResult → Result
Remaining 41 issues are documented baseline:
- gocyclo (24): High complexity in large functions
- gosec G204/G115 (17): False positives for subprocess/conversions
Closes bd-92
Amp-Thread-ID: https://ampcode.com/threads/T-1c136506-d703-4781-bcfa-eb605999545a
Co-authored-by: Amp <amp@ampcode.com >
2025-10-24 12:40:56 -07:00
Steve Yegge
4da8caef24
Migrate to Viper for unified configuration management (bd-78)
...
- Add Viper dependency and create internal/config package
- Initialize Viper singleton with config file search paths
- Bind all global flags to Viper with proper precedence (flags > env > config > defaults)
- Replace manual os.Getenv() calls with config.GetString/GetBool/GetDuration
- Update CONFIG.md with comprehensive Viper documentation
- Add comprehensive tests for config precedence and env binding
- Walk up parent directories to discover .beads/config.yaml from subdirectories
- Add env key replacer for hyphenated keys (BD_NO_DAEMON -> no-daemon)
- Remove deprecated prefer-global-daemon setting
- Move Viper config apply before early-return to support version/init/help commands
Hybrid architecture maintains separation:
- Viper: User-specific tool preferences (--json, --no-daemon, etc.)
- bd config: Team-shared project data (Jira URLs, Linear tokens, etc.)
All tests passing. Closes bd-78, bd-79, bd-80, bd-81, bd-82, bd-83.
Amp-Thread-ID: https://ampcode.com/threads/T-0d0f8c1d-b877-4fa9-8477-b6fea63fb664
Co-authored-by: Amp <amp@ampcode.com >
2025-10-23 17:30:05 -07:00