Skip to main content
← All Internal Releases

nanx v0.4.0

Internal
2026-01-04

Release Date: 2026-01-04

Previous Version: v0.3.1

This release focuses on comprehensive repository management and worktree workflow improvements for nanions. Key highlights include a new repository configuration system supporting both global and local configs, intelligent worktree workflows with environment-aware actions, dynamic shell completion for bash and zsh, and enhanced support for non-NX monorepo project discovery.

Features

Repository Configuration Management ([SUR-57](https://linear.app/surkyl/issue/SUR-57))

  • Global and local config support: Introduced a dual-level configuration system allowing repository settings to be defined globally (~/.nanx/repos.yml) or per-repository (.repo.yml)
  • repos config command: New command (nanions::repos::config_cmd::handle_config_repos) for editing both global and local repository configurations with editor integration
  • Shared worktree setup: Added WorktreeRepoConfig struct to manage worktree-specific configuration, now stored at the global level rather than per-repository

Environment-Aware Worktree Workflow

  • Intelligent worktree actions: Implemented WorktreeAction enum with configurable behaviors (auto/cd/editor/none) based on environment detection
  • Environment detection: New EnvironmentInfo struct detects SSH sessions, desktop environments, terminal capabilities, and available editors
  • Automatic worktree creation: Enhanced git clone command to automatically create worktrees from bare repositories with proper branch setup
  • Branch name reversal: Worktree directories now use reversed branch path components (e.g., feature/authauth.feature) for improved organization
  • Subshell workflow: Implemented worktree subshell support for seamless context switching between worktrees

Dynamic Shell Completion System

  • Bash and zsh support: Replaced static clap completions with custom dynamic completion scripts
  • Context-aware completions: Dynamic completion handlers for git branches, remotes, tags, and repository-specific suggestions
  • Installation automation: Automatic completion script installation with cache clearing for immediate activation

Non-NX Monorepo Support

  • Project discovery: Added comprehensive project discovery system for non-NX monorepos
  • Flexible project definitions: Support for custom project structures via discovery and projects configuration in .repo.yml
  • Minimal YAML serialization: Implemented streamlined YAML config with essential release and changelog keys

Non-Interactive Operations

  • --yes flag for rollback: Added non-interactive mode to rollback command with automatic flag injection during sudo re-execution

Bug Fixes

Git Worktree Command Ordering

  • Correct argument order: Fixed git worktree add command by reordering arguments to place force flag (-f) before positional arguments
  • Explicit start point: Now explicitly specifies HEAD as the start point when creating new branches to prevent ambiguous reference errors

Technical Changes

Worktree Configuration Migration

  • Config location change: Moved worktree configuration from .repo.yml to global ~/.nanx/repos.yml for better reusability across repositories
  • Dependency updates: Enhanced nanions::repos::dependency module to support new project discovery patterns

Code Quality Improvements

  • Shell completion refactoring: Replaced clap_complete with custom completion system for better control and maintainability
  • Updated setup instructions: Improved zsh completion setup documentation with cache clearing steps

Statistics

MetricValue
Commits10
Files Changed30
Lines+9625 / -163
Issues Closed1

Contributors

NameCommitsLines
VivinMeth ([email protected])10+10139 / -677