Release Date: 2025-12-27
Previous Version: v0.2.3
Summary
This release significantly enhances the release workflow with AI-powered changelog generation, improved commit message UX, and more flexible configuration options. Key highlights include the introduction of a user-local configuration layer, git tag message generation capabilities, and a unified dependency resolution system for release qualification and changelog generation.
Features
AI-Powered Changelog Generation with Pause/Continue Workflow
- nanions::repos::release::changelog: Implemented
ChangelogGenerator with support for both conventional parsing and AI-powered generation using configurable providers
- nanions::repos::repo_config: Added
ChangelogRepoConfig with options for internal and end-user changelog formats, AI provider selection, and custom prompt templates
- Workflow: New pause/continue release workflow allows review of AI-generated changelogs before finalizing the release
- Integration: Changelog generation automatically creates both technical and end-user facing documentation based on git commit history
OpenCode AI Provider Integration
- nanions::nanx::ai::providers::opencode: Implemented OpenCode provider with message formatting and streaming support compatible with OpenAI-style APIs
- nanions::nanx::ai::opencode_detector: Added environment-based detection logic to automatically discover and configure OpenCode when available
- AI Usage Tracking: Integrated
UsageTracker with changelog generation to monitor token usage and costs across AI providers
Git Tag Message Generation
- nanions::repos::release::tag_message: Implemented
TagMessageGenerator with configurable formatting for release tags
- nanions::repos::repo_config: Added
changelog_public_url_base and tag_message_contributor_format configuration fields for customizing tag messages
- Flexibility: Supports rich tag messages with changelog URLs and contributor attribution
User-Local Configuration Layer
- nanions::nanx::config::loader: Implemented
ConfigLocation::UserLocal for user-specific configuration with automatic gitignore support
- nanions::nanx::config::config_cmd: Added
--user-local flag to all config subcommands (show, edit, validate, where, get, set, unset)
- Priority: User-local config sits between repository and user-global layers in the configuration hierarchy
Configurable Dependency Path Inclusion for Changelogs
- nanions::repos::repo_config::ProjectReleaseConfig: Added
changelog_include_dependencies, changelog_include_paths, and changelog_exclude_paths fields for fine-grained control over what changes appear in changelogs
- Filtering: Allows exclusion of internal dependencies or specific paths from generated changelogs while still tracking them for version qualification
Improvements
Enhanced Commit Message Generation UX
- nanions::ai::commit_message: Replaced static "Generating commit message..." text with animated progress spinner during AI generation
- Better Feedback: Provider announcement moved into spinner label for clearer user feedback during potentially long-running AI operations
Unified Dependency Resolution System
- nanions::repos::release::dependency_resolver: Implemented centralized
DependencyResolver with DependencySource tracking and accurate commit counting
- Migration: Both release qualification and changelog generation now use the same dependency resolution logic, ensuring consistency
- Accuracy: Improved tracking of which commits come from which dependencies or project paths
Improved Git Log Parsing Diagnostics
- nanions::repos::release::changelog::git_data: Enhanced error handling with skipped entry tracking and better debugging output
- Reliability: More robust parsing of git log output with detailed diagnostics when entries are skipped or malformed
Bug Fixes
Git Log Parsing with Special Characters
- nanions::repos::release::changelog::git_data::extract_commits: Fixed parsing failures when commit messages contained pipe (
|) characters by replacing simple pipe delimiters with unique separator sequences
- Impact: Prevents changelog generation failures on commits with formatted tables, code snippets, or shell commands
Untracked Changelog File Staging
- nanions::repos::release::release_cmd::handle_continue_release: Added explicit
git add for changelog files before calling stage_all_release_changes
- Fix: Ensures newly generated changelog files are properly staged and included in release commits
Technical Changes
Explicit Default Implementation for ProjectReleaseConfig
- nanions::repos::repo_config::ProjectReleaseConfig: Removed
derive(Default) in favor of explicit impl Default with changelog_include_dependencies defaulting to true
- Rationale: Provides better control over default values and makes default behavior more explicit in code
Release Version Progression
- Multiple intermediate releases (v0.2.5, v0.2.6, v0.2.7, v0.3.1) were created during development to test the new changelog generation and release workflow features
Documentation
Release Changelogs
- libs::nanions::change-logs::v0.2.5.change-log.md: Added comprehensive technical changelog documenting the AI-powered release workflow and OpenCode integration
- libs::nanions::change-logs::end-user::v0.2.5.change-log.md: Added user-facing changelog for v0.2.5 release
Statistics
| Commits | 18 |
| Files Changed | 112 |
| Lines | +10668 / -1951 |
| Issues Closed | 0 |
Contributors