Manually corrected the base_branch in .onx/workstreams.json from
'main' to 'master' to match the repository's actual default branch.
This workstream was created before the dynamic branch detection fix,
so it incorrectly recorded 'main' as the base branch.
- Add getDefaultBranchName() method to WorkstreamManager
- Detects repo default by checking HEAD symbolic ref and fallback
- Update CreateWorkstream to use dynamic default branch detection
- Update 'onx new' CLI flag default to empty string
- Manager now determines correct default branch automatically
Fixes bug where 'onx new feature' always used 'main' even when repo
uses 'master' as the default branch. Now workstreams correctly detect
and use the repository's actual default branch.
- Add structured logging with zap library (internal/utils/logger.go)
- Support for Debug, Info, Warn, Error, Fatal log levels
- JSON format for file logs, console format for stdout
- Logs written to .onx/logs/onx.log
- Configurable log levels and output modes
- Create comprehensive error types (internal/errors/errors.go)
- OnyxError struct with Code, Message, Cause, and Hint fields
- Error codes for all major error categories
- Helper constructors for common errors
- Recovery hints for better user experience
- Add panic recovery mechanisms to daemon (internal/daemon/daemon.go)
- Wrap main event loop with panic recovery
- Graceful degradation on partial failures
- Detailed error logging with stack traces
- Recovery wrapper for snapshot creation
- Replace standard log package with structured logging
This implements items 44-46 from the checklist.