v0.15.0
Features
md run:- Added
--envflag to set environment variables - Added
--apply-patchflag to pull changes back after command execution. - Added
--extra-repo(short-e) flag to map additional git repositories.
- Added
md forkflags (--display,--tailscale,--usb,--sudo) now accept explicit true/false values (e.g.--display=false), allowing users to force-disable capabilities inherited from the source container.- Fork snapshots now strip runtime environment variables (
MD_DISPLAY,MD_TAILSCALE, etc.) from the source image to prevent unintended re-enabling of capabilities. - SSH configuration optimized for speed: restricted host key algorithms, ciphers, and kex algorithms; compression disabled.
- slog logging is now injectable.
Bug Fixes
- Diff now uses merge-base to exclude upstream changes that are not part of the local branch.
- Git index timestamp is preserved during diff to prevent Git from considering the temporary index as clean and missing changes.
- Pull and
SyncDefaultBranchhandle missing branches (e.g. manually deleted container branches) without errors. - SSH readiness timeout increased to 30 seconds for slower container starts.
- Removed the
chownrepair step instart.shthat could cause performance issues with fork snapshots. - Sensitive values (API keys, passwords, tokens) are now redacted in command argument logs.
Breaking Changes
- Dynamic upstream tracking replaces the hardcoded
basebranch. The base ref is now derived from@{upstream}or a "host" remote, supporting feature branches with remote tracking. Container.Run()has been removed. UseLaunch(),Connect(), SSH command, andPurge()instead.- Fork flag behavior changed: unset flags no longer inherit from the source; they now remain off. Use
--flag=trueor--flag=falseexplicitly.
Other
- SSH commands for Push, Fetch, and Pull are combined into single SSH calls, reducing round trips.
start.shnow locks the user's password and removes the user from the sudo group when sudo is not enabled.
Full Changelog: v0.14.2...v0.15.0