0.9.108
2026-02-12
- Fix dark mode contrast for alerts, badges, and admin pages
- Persist data protection keys in E2E/testing environments when possible, falling back to ephemeral keys only if the keys directory is not writable
0.9.107
2026-02-11
- Fix reverse proxy forwarded headers not being applied when Caddy runs on a Docker bridge network
- Fix security stamp validation being completely bypassed during cookie authentication
- Reduce security stamp revalidation frequency to 24 hours to prevent unnecessary sign-outs
- Set data protection key lifetime to 180 days for more predictable key rotation
- Improve authentication and cookie diagnostics logging
0.9.106
2026-02-11
- Add dark mode styling to all remaining UI components and pages
0.9.105
2026-02-11
- Add dark mode with Light/Dark/System theme toggle to the server UI
- Default notification email to account email when left blank and notifications are enabled
- Improve container path resolution reliability during builds (uses cgroup in addition to HOSTNAME)
- Add validation for project settings updates
0.9.104
2026-02-11
- Add logo branding to the server login page and layout
- Rename “Ando CI” to “Ando Server” throughout the interface
0.9.103
2026-02-11
- Add real-time project list refresh via SignalR when builds are queued
- Add manual profile override option in project settings for cases where auto-detection is stale
- Scan branch filter branches (not just default branch) for profile detection
- Add inline secret value update in project settings with password manager suppression
- Add version badge sync to
ando docscommand (automatically updates version badges before running Claude) - Show app version and attribution in the layout footer
0.9.102
2026-02-11
- Fix authentication redirects and cookie handling when running behind a reverse proxy
0.9.101
2026-02-11
- Simplify the project list layout
- Improve
Git.PushTags()to push only new tags that don’t already exist on the remote, avoiding unnecessary pushes and potential conflicts
0.9.100
2026-02-11
- Enhance build failure emails with build logs and metadata
- Only run post-hooks for
releaseandshipcommands when the command succeeds (exit code 0) - Improve Ctrl+C handling: first press requests graceful cancellation, second press forces immediate exit
0.9.99
2026-02-11
- Add deployment status indicators and sorting to the project list page
- Improve release asset resolution for Docker-in-Docker build environments
0.9.98
2026-02-11
- Fix login redirect to use HTTP 303 See Other, preventing form resubmission on page refresh
- Add global flash messages for login success feedback
0.9.97
2026-02-10
- Add build log connection status indicator showing SignalR/polling state
- Add SignalR retry with automatic reconnection when WebSockets are blocked
- Detect
GITHUB_TOKENrequirement forGitHub.PushImage()andDocker.Build()withWithPush()targeting ghcr.io - Add auth and SignalR diagnostics logging for troubleshooting session issues
0.9.96
2026-02-10
- Internal improvements
0.9.95
2026-02-10
- Add
shipcommand for running the release workflow without publishing - Fix remember-me defaulting and extend session idle timeout
0.9.94
2026-02-10
- Fix login and registration forms resubmitting when refreshing the page
0.9.91
2026-02-10
- Automatically resolve GitHub App identity via API instead of manual configuration
0.9.90
2026-02-09
- Persist login sessions so users stay signed in across server restarts
- Default to remember-me login for a smoother authentication experience
- Add session status endpoint for improved client connectivity
- Improve project and script handling in the server
0.9.80
2026-02-07
- Automatically install Docker CLI in build containers when Docker-in-Docker mode is enabled
0.9.79
2026-02-07
- Automatically resolve host paths from container bind mounts during builds
0.9.78
2026-02-07
- Fix build commands running in the wrong directory inside containers
0.9.77
2026-02-07
- Fix API token authentication not being evaluated correctly
0.9.76
2026-02-07
- Add personal API token management for programmatic access to the server
0.9.75
2026-02-07
- Install Ando CLI from NuGet in build containers for improved reliability
- Fix URL generation in the server
0.9.74
2026-02-07
- Improve email delivery failure logging
0.9.73
2026-02-07
- Fix file permissions across build scripts and documentation
0.9.72
2026-02-06
- Fix email sender address validation and improve email service reliability
0.9.71
2026-02-06
- Fix email service registration for improved reliability
- Normalize file permissions across the project
0.9.70
2026-02-06
- Redirect to dashboard after registration instead of showing a separate success page
0.9.69
2026-02-06
- Improve Docker availability checks with specific error messages
0.9.68
2026-02-06
- Switch email delivery to Resend for improved reliability
- Improve authentication error handling
0.9.66
2026-02-03
- Add option to bypass rootless Docker validation for TrueNAS deployments
0.9.65
2026-02-03
- Add ASCII art startup banner with version info to server
0.9.64
2026-02-01
- Improve documentation for atomic Docker build and push operations
0.9.63
2026-01-31
- Add exit code to post-hook context for release command
0.9.62
2026-01-31
- Add dedicated hooks documentation page
0.9.61
2026-01-31
- Simplify email service configuration in Ando.Server
- Internal improvements
0.9.60
2026-01-30
- Add proper database migrations for Ando.Server instead of auto-creating schema
- Add TrueNAS deployment documentation for self-hosted installations
0.9.59
2026-01-29
- Add API documentation links to the LLM reference
- Internal improvements
0.9.58
2026-01-29
- Add DocFX operations for generating API documentation
- Internal improvements and test coverage enhancements
0.9.57
2026-01-29
- Simplify Docker operations by consolidating Build and Buildx into a single Build operation
- Add source code links to operation documentation on the website
0.9.56
2026-01-28
- Improve container registry operations to extract owner from image tags directly
0.9.55
2026-01-28
- Improve documentation generation to analyze recent commits for better context
0.9.54
2026-01-28
- Add support for building multi-architecture Docker images
0.9.53
2026-01-28
- Improve reliability of global tool update after publishing releases
0.9.52
2026-01-28
- Add comprehensive tests for CLI commands
0.9.51
2026-01-28
- Improve build performance by persisting caches inside containers instead of mounting from host
0.9.50
2026-01-28
- Fix validation for unknown CLI commands
- Improve post-release tool update to use specific version
0.9.49
2026-01-28
- Add AI-powered automatic changelog updates during version bumps
- Add permission checks for AI-assisted operations
0.9.48
2026-01-28
- Skip version bump during release when there are no changes since the last tag
0.9.47
2026-01-28
- Fix error output capture when commands fail, showing helpful error messages instead of empty output
- Improve timeout handling to gracefully stop long-running commands
0.9.46
2026-01-26
- Add automatic DIND (Docker-in-Docker) mode inheritance so child builds no longer prompt separately when the parent build already enabled DIND
0.9.45
2026-01-26
- Add automatic Docker-in-Docker mode inheritance for nested builds, so child builds no longer prompt for DIND confirmation when the parent build already enabled it
0.9.44
2026-01-26
- Add recursive scanning of child builds when detecting Docker-in-Docker requirements
- Add profile support for child builds, allowing different build configurations
- Add
readEnvconfig option to control environment variable loading and new hook recipes
0.9.43
2026-01-26
- Improve hook configuration to support path operations on the root directory
0.9.42
2026-01-26
- Internal improvements to post-release script cleanup handling
0.9.41
2026-01-26
- Add automatic detection when Docker-in-Docker mode is needed, with an interactive prompt to enable it
- Add automatic update of the global tool after publishing a new release
0.9.40
2026-01-26
- Add option to automatically add
.env.andoto.gitignorewhen initializing a project
0.9.39
2026-01-26
- Version bump
0.9.38
2026-01-26
- Add new
ando docscommand to open documentation in the browser - Update website tagline and improve documentation
0.9.37
2026-01-26
- Add real-time output streaming for shell operations in build scripts
- Add new
ando docscommand for AI-assisted documentation updates - Fix Docker-in-Docker container recreation and build verification
0.9.36
2026-01-26
- Add documentation for the release command
- Fix incorrect GitHub authentication instructions
0.9.35
2026-01-24
- Add automatic confirmation option for version bumping to enable non-interactive workflows
0.9.34
2026-01-23
- Add GitHub link badge to the documentation website landing page
0.9.33
2026-01-23
- Add AI-powered changelog generation that creates user-friendly release notes from commit messages
0.9.32
2026-01-23
- feat(bump): auto-generate changelog from git commits since last tag
0.9.31
2026-01-23
- Version bump
0.9.30
2026-01-23
- Version bump
0.9.29
2026-01-23
- Version bump
0.9.28
2026-01-23
- Version bump
Installation
Install or update ANDO using the .NET CLI:
# Install
dotnet tool install -g ando
# Update to latest
dotnet tool update -g ando
# Check version
ando --version
0.9.27
2026-01-23
Improvements:
- Improved reliability of GitHub OAuth scope checking
- Fixed environment variable handling when checking keyring token scopes
- Uses bash subprocess for more reliable token isolation during scope verification
0.9.26
2026-01-23
Improvements:
- Added OAuth scope validation for
GitHub.PushImage()operations- Now checks for
write:packagesscope before attempting to push to ghcr.io - Provides clear error message with re-authentication instructions if scope is missing
- Run
gh auth login --scopes write:packagesto fix scope issues
- Now checks for
0.9.25
2026-01-23
Maintenance:
- Improved version bump script with GitHub authentication check
- No user-facing changes in this release
0.9.24
2026-01-23
Maintenance:
- Version bump for release infrastructure improvements
- No user-facing changes in this release
0.9.23
2026-01-22
New Features:
- Enhanced
GitHub.CreateRelease()with optional file uploads- Use
WithFiles()to attach release assets (e.g., binaries, archives) - Supports
path#namesyntax to rename files (e.g.,"dist/app#app-linux-x64") - Files are uploaded as release assets alongside the release creation
- Use
Example:
GitHub.CreateRelease(o => o
.WithTag("v1.0.0")
.WithGeneratedNotes()
.WithFiles(
"dist/linux-x64/app#app-linux-x64",
"dist/win-x64/app.exe#app-win-x64.exe"
));
0.9.22
2026-01-22
Maintenance:
- Reverted SDK version and target framework to .NET 9 (9.0.200 SDK, net9.0 target framework)
- An attempted upgrade to .NET 10 was reverted to maintain compatibility and stability
- The project continues to use .NET 9 exclusively as per the documented requirements
0.9.21
2026-01-22
New Features:
- Added
--version/-vCLI command to display the installed ANDO version- Usage:
ando --versionorando -v
- Usage:
Improvements:
- Enhanced
Playwright.Install()to automatically install system dependencies- Now runs
npx playwright install --with-depsinstead of justnpx playwright install - Automatically installs required system packages (libgtk, libasound, etc.) on Linux
- Improves reliability when running E2E tests in Docker containers
- Now runs
- Improved Docker-in-Docker (
--dind) support on Linux- Added
host.docker.internalhostname mapping for containers - Containers can now reach services on the host via
host.docker.internal - Useful for E2E tests that need to connect to locally running servers
- Added
- Updated all examples to include
Ando.CopyArtifactsToHost()for copying build outputs to host
0.9.20
2026-01-22
New Features:
- Added
Docker.IsAvailable()method to check if Docker CLI and daemon are accessible- Returns
trueif Docker is available,falseotherwise - Executes immediately (not registered as a step) for conditional logic in build scripts
- Returns
Improvements:
- Enhanced E2E testing support with Docker-in-Docker mode
- Build scripts can now detect Docker availability and conditionally run E2E tests
- Updated main build script to use
Docker.IsAvailable()for cleaner E2E test gating - Improved documentation for running E2E tests with
ando --dindflag
Documentation:
- Updated Playwright E2E testing recipe with Docker-in-Docker best practices
- Clarified E2E test requirements in build script comments
0.9.19
2026-01-22
New Features:
- Added Playwright E2E testing to the main build script with automatic local/server detection
- Tests run automatically on local builds where Docker is available
- Tests are skipped on Ando.Server (nested Docker) by default
- Use
-p e2eprofile to force E2E tests in any environment
Documentation:
- Added new Recipes section to the documentation website
- New recipe: “Running Playwright E2E Tests” with automatic local/server detection
- Updated
llms.txtwith links to new recipe documentation - Added
.NET Versionsection to CLAUDE.md documenting the .NET 9 requirement
0.9.18
2026-01-22
Improvements:
- Added support for Resend-compatible email providers with configurable base URL in Ando.Server
- Configure
Email__BaseUrlto use alternative email providers like Loops or self-hosted Resend instances - Default base URL remains
https://api.resend.comfor standard Resend usage
- Configure
0.9.17
2026-01-22
Improvements:
- Enhanced
ProjectRefto read version directly from.csprojfiles- Access project version via
project.Versionproperty in build scripts - Example:
Log.Info($"Building {project.Name} version {project.Version}"); - Version is lazily loaded and cached for performance
- Returns “0.0.0” if no Version element is found
- Access project version via
0.9.16
2026-01-22
Improvements:
- Expanded tilde (
~) to home directory forGITHUB_PEM_PATHinserver-install.sh
0.9.15
2026-01-22
Improvements:
- Refactored GitHub PEM handling in
server-install.shfor improved flexibility- Added option to paste PEM content directly (recommended for
curl | bashinstallations) - Added option to use a file already uploaded to the server
- Retained local file path option for compatibility
- Added option to paste PEM content directly (recommended for
0.9.14
2026-01-22
Bug Fixes:
- Fixed input handling in
server-install.shto read from/dev/ttyfor better compatibility with piped installations
0.9.13
2026-01-22
New Features:
- Added
Docker.Install()to install Docker CLI in the container for Docker-in-Docker builds
Improvements:
- Git commands now always run on the host (not in the container), fixing issues with git operations in containerized builds
- Added
WithSkipIfExists()option toGit.Tag()to gracefully handle existing tags instead of failing - Improved
Nuget.Push()duplicate handling - now properly detects and reports when a package version already exists - Updated GitHub CLI token extraction to support newer
ghCLI versions
0.9.12
2026-01-21
Maintenance:
- Removed
.env.andofiles from git tracking to prevent accidental commits of local environment configuration - Added
.env.andopattern to.gitignore
0.9.11
2026-01-21
Maintenance:
- Fixed file permissions on multiple source and documentation files
0.9.5
2026-01-17
Build Profiles:
- New
DefineProfile()for conditional build steps - Activate via CLI:
ando -p releaseorando -p push,release - Validates profiles before execution - typos are caught early
- Profiles are passed to nested builds automatically
New Providers:
- Git -
Tag(),Push(),PushTags(),Add(),Commit() - GitHub -
CreatePr(),CreateRelease(),PushImage()(ghcr.io) - Docker -
Build()with support for build args and platforms
GitHub Authentication:
- Uses
GITHUB_TOKENenv var (CI-friendly) - Falls back to extracting token from
gh auth loginconfig - Token passed to containers automatically
0.9.4
2026-01-17
Auto-Install SDK/Runtime:
- Dotnet operations now automatically install .NET SDK if not present
- Npm operations now automatically install Node.js if not present
- Version is fetched dynamically from official APIs (.NET releases, Node.js releases)
- Cached per-build to avoid repeated API calls
Dotnet.SdkInstall()andNode.Install()disable auto-install for explicit version control
0.9.3
2026-01-16
First public release.
Providers:
- Ando - Core operations (Log, Artifacts, Context)
- Dotnet - Build, test, publish .NET projects (includes SdkInstall)
- Ef - Entity Framework Core migrations
- Npm - npm install, ci, run, build, test
- Node - Install Node.js in containers
- NuGet - Pack and push NuGet packages
- Azure - Azure CLI authentication and subscription management
- Bicep - Deploy Azure infrastructure with Bicep templates
- AppService - Deploy to Azure App Service with slot swapping
- Functions - Deploy to Azure Functions
- Cloudflare - Deploy to Cloudflare Pages