Skip to main content
← All Internal Releases

nanions v0.3.0

Internal
2025-12-27

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

MetricValue
Commits18
Files Changed112
Lines+10668 / -1951
Issues Closed0

Contributors

NameCommitsLines
VivinMeth ([email protected])18+10858 / -2141