error-handling-logging #1

Open
dubey wants to merge 5 commits from error-handling-logging into master
Owner
No description provided.
dubey added 3 commits 2025-10-15 20:47:30 -04:00
- 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.
- 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.
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.
dubey added 2 commits 2025-10-16 07:21:10 -04:00
- Update CreateCommit to accept separate authorName and authorEmail
- Add GetGitConfig method to read user.name and user.email from config
- GetGitConfig checks local repo config first, then global config
- Update save.go to read author from git config before creating commits
- Update workstream_manager.go to extract author from git commit
- Update daemon/snapshot.go to use proper email for daemon commits
- Update git/rebase.go to preserve author email during rebases

Fixes issue where commits showed 'User <onyx@local>' instead of 
actual git user.name and user.email from config.
This pull request can be merged automatically.
The changes on this branch are already on the target branch. This will be an empty commit.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin error-handling-logging:error-handling-logging
git checkout error-handling-logging
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DWS/onyx#1
No description provided.