- Replaced deterministic pipeline with agent session using specialized git tools for diff analysis.
- Introduced git-overview, git-file-diff, git-hunk, and analyze-file tools for fine-grained inspection.
- Added split-commit support to create multiple atomic commits for unrelated changes.
- Added commit message validation with filler word detection, meta phrase filtering, and unicode normalization.
- Added --legacy flag to use the deterministic pipeline when preferred.
- Extracted formatCommitMessage and model selection logic into dedicated modules.
- Added file locking mechanism to prevent concurrent write races in settings persistence.
- Exported `withFileLock` utility function for coordinating file access across processes.
- Integrated file locking into SettingsManager.save() to ensure atomic config updates.
- Added configurable map-reduce analysis settings for concurrency, timeout, file thresholds, and token limits.
- Made changelog diff truncation limit configurable via maxDiffChars parameter.
- Added support for excluding YAML lock files from commit analysis via suffix patterns.
- Created GitError custom error class with command and stderr tracking for structured error handling.
- Converted relative imports to alias-based '$c' imports across commit modules.
- Added CommitSettings interface with configurable map-reduce and changelog parameters.
- Added getCommitSettings() method to SettingsManager for retrieving commit configuration with sensible defaults.
- Added commit settings field to Settings interface.
- Improved YAML formatting by adding indentation parameter to YAML.stringify() calls for better readability.
- Removed redundant mkdirSync calls before Bun.write operations.
- Reorganized import statements in alphabetical order for consistency.
- Settings now stored in ~/.omp/agent/config.yaml instead of agent.db
- Models config now supports models.yaml (preferred) alongside models.json
- Auto-migration from agent.db settings and models.json on first run
- AgentStorage.saveSettings() deprecated (getSettings() kept for migration)
- storage-migration.ts now only handles auth.json migration