Skip to content

feat(task): support env vars in task dependencies#7724

Merged
jdx merged 6 commits intomainfrom
feat/task-dep-env
Jan 17, 2026
Merged

feat(task): support env vars in task dependencies#7724
jdx merged 6 commits intomainfrom
feat/task-dep-env

Conversation

@jdx
Copy link
Owner

@jdx jdx commented Jan 17, 2026

Summary

  • Add support for passing environment variables to task dependencies
  • Two syntaxes supported:
    • Shell-style inline: depends = ["FOO=bar mytask arg1"]
    • Structured object: depends = [{ task = "mytask", env = { FOO = "bar" }, args = ["arg1"] }]

Test plan

  • Unit tests added for TaskDep parsing and serialization
  • E2E test added (e2e/tasks/test_task_dep_env)
  • Existing task dependency tests still pass

🤖 Generated with Claude Code


Note

Introduces environment variable passing to dependency tasks with both shell-style ("FOO=bar task") and structured object ({ task = "...", env = { ... } }) syntaxes.

  • Extend TaskDep to parse/serialize env, including shell-style KEY=VAL parsing and args; add unit tests and new e2e test_task_dep_env
  • Apply dependency env to target tasks (with_dependency_env), and include env in task identity: ordering, hashing, equality, and scheduling keys (Deps)
  • Add inherited_env for parent-propagated env that doesn’t affect identity; update env rendering and TaskContextBuilder caching to consider inherited env
  • Update docs for depends, depends_post, wait_for types with env support and examples

Written by Cursor Bugbot for commit 7d5a07e. This will update automatically on new commits. Configure here.

Add support for passing environment variables to task dependencies using two syntaxes:

Shell-style inline:
  depends = ["FOO=bar mytask arg1"]

Structured object:
  depends = [{ task = "mytask", env = { FOO = "bar" }, args = ["arg1"] }]

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings January 17, 2026 18:13
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds support for passing environment variables to task dependencies, enabling better control over dependent task execution contexts.

Changes:

  • Added env field to TaskDep struct to store environment variables
  • Implemented parsing for both shell-style (FOO=bar mytask) and structured object syntax ({ task = "mytask", env = { FOO = "bar" } })
  • Updated serialization/deserialization logic to handle the new env field across all formats

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
src/task/task_dep.rs Core implementation: added env field, parsing logic for shell-style and object formats, updated serialization/deserialization, and comprehensive unit tests
src/task/mod.rs Integration: applied env vars from dependencies to tasks using derive_env, updated test fixtures with default env values
e2e/tasks/test_task_dep_env End-to-end test validating both shell-style and structured object syntax for passing env vars

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +33 to +34
let parts = shell_words::split(&s)
.unwrap_or_else(|_| s.split_whitespace().map(String::from).collect());
Copy link

Copilot AI Jan 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The error from shell_words::split is silently ignored. Consider logging the error or providing context about why the fallback to simple whitespace splitting was used, as this could mask issues with malformed shell syntax.

Suggested change
let parts = shell_words::split(&s)
.unwrap_or_else(|_| s.split_whitespace().map(String::from).collect());
let parts = match shell_words::split(&s) {
Ok(parts) => parts,
Err(err) => {
eprintln!(
"Warning: failed to parse task string with shell_words::split: {err}. Falling back to whitespace splitting. Original: {s}"
);
s.split_whitespace().map(String::from).collect()
}
};

Copilot uses AI. Check for mistakes.
run = 'echo done'

[tasks.echo-args]
run = 'echo "FOO=\$FOO" && echo'
Copy link

Copilot AI Jan 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test verifies that FOO=test appears in output but doesn't validate that args arg1 and arg2 are actually passed to the echo-args task. The task's run command only echoes the FOO variable and doesn't incorporate the args, making line 42's assertion about args appearing in output unlikely to succeed as intended.

Copilot uses AI. Check for mistakes.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 3 potential issues.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

task_found = true;
} else {
self.args.push(part);
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Task names containing equals sign incorrectly parsed as env

Medium Severity

The shell-style env var parsing runs on any dependency string without spaces, causing task names containing = (e.g., "build=release") to be incorrectly parsed as env vars. For depends = ["build=release"], the parser extracts env = {"build": "release"} even though the user intended to reference a task literally named "build=release". The task resolution may still succeed, but the task runs with an unintended environment variable that could affect its behavior.

Fix in Cursor Fix in Web

- Validate that task name is present (not just env vars)
- Single tokens with '=' are treated as task names, not env vars
- Task deduplication now considers env vars (same task with different
  env is treated as distinct)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@github-actions
Copy link

github-actions bot commented Jan 17, 2026

Hyperfine Performance

mise x -- echo

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.1.3 x -- echo 20.6 ± 0.8 19.1 25.1 1.02 ± 0.05
mise x -- echo 20.1 ± 0.7 19.2 26.7 1.00

mise env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.1.3 env 19.2 ± 0.6 18.4 24.9 1.00
mise env 19.3 ± 0.5 18.6 25.3 1.01 ± 0.04

mise hook-env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.1.3 hook-env 19.4 ± 0.4 18.8 24.2 1.00
mise hook-env 19.7 ± 2.0 18.9 61.0 1.01 ± 0.10

mise ls

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.1.3 ls 17.9 ± 0.4 17.2 22.1 1.00
mise ls 18.1 ± 0.3 17.4 19.8 1.01 ± 0.03

xtasks/test/perf

Command mise-2026.1.3 mise Variance
install (cached) 110ms 111ms +0%
ls (cached) 68ms 68ms +0%
bin-paths (cached) 71ms 72ms -1%
task-ls (cached) 283ms 282ms +0%

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

jdx and others added 2 commits January 17, 2026 12:42
All trait implementations now use sorted env vars for consistency
with task_key() deduplication logic.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Tasks now have two levels of environment variables:
- `env`: Task's own env vars (from task definition or `depends` with env)
  Used for task identity/deduplication
- `inherited_env`: Env vars inherited from parent tasks via `derive_env`
  NOT used for task identity (prevents hangs when tasks are run via
  `run = [{ task = "..." }]` from parent tasks)

This fixes a hang in test_task_env_propagation where tasks with inherited
env vars couldn't be found in the dependency graph for removal.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

- `with_dependency_env()`: For env vars from `depends = ["FOO=bar task"]`
  These go into `task.env` and AFFECT task identity/deduplication
- `derive_env()`: For env vars inherited from parent tasks via
  `run = [{ task = "..." }]` propagation
  These go into `task.inherited_env` and do NOT affect task identity

This ensures that:
- Multiple parent tasks depending on the same child with different env
  vars will correctly run both variants
- Inherited env from parent task propagation won't cause graph lookup
  failures

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@jdx jdx merged commit 5f0e694 into main Jan 17, 2026
35 checks passed
@jdx jdx deleted the feat/task-dep-env branch January 17, 2026 20:28
jdx pushed a commit that referenced this pull request Jan 17, 2026
### 🚀 Features

- **(conda)** add dependency locking for reproducible installations by
@jdx in [#7708](#7708)
- **(http)** add JSON filter syntax for version extraction by @jdx in
[#7707](#7707)
- **(http)** add version_expr support and Tera templating by @jdx in
[#7723](#7723)
- **(task)** add [monorepo].config_roots for explicit config root
listing by @jdx in [#7705](#7705)
- **(task)** support env vars in task dependencies by @jdx in
[#7724](#7724)

### 🐛 Bug Fixes

- **(conda)** fix hardcoded library paths in conda packages by @jdx in
[#7713](#7713)
- **(env)** avoid venv/go backend deadlock during env resolution by
@stk0vrfl0w in [#7696](#7696)
- **(python)** sort CPython versions at end of ls-remote output by @jdx
in [#7721](#7721)
- **(task)** resolve remote task files before display and validation
commands by @yannrouillard in
[#7681](#7681)
- **(task)** support monorepo paths in `mise tasks deps` by @chadxz in
[#7699](#7699)
- **(task)** resolve all monorepo path hints in deps by @chadxz in
[#7698](#7698)

### 📚 Documentation

- remove outdated roadmap page by @jdx in
[#7726](#7726)

### ⚡ Performance

- **(task)** fix task-ls cached performance regression by @jdx in
[#7716](#7716)

### 📦️ Dependency Updates

- replace dependency @tsconfig/node22 with @tsconfig/node24 by
@renovate[bot] in [#7618](#7618)

### 📦 Registry

- add aqua backend for smithy by @jdx in
[#7661](#7661)
- remove low-usage asdf plugins by @jdx in
[#7701](#7701)
- disable mirrord test by @jdx in
[#7703](#7703)
- use vfox-dotnet as default backend by @jdx in
[#7704](#7704)
- use vfox-lua as default lua backend by @jdx in
[#7706](#7706)
- add vfox backend for redis by @jdx in
[#7709](#7709)
- use vfox-postgres as default postgres backend by @jdx in
[#7710](#7710)
- use github backend for kotlin by @jdx in
[#7711](#7711)
- add vfox backend for leiningen by @jdx in
[#7714](#7714)
- use pipx backend for meson by @jdx in
[#7712](#7712)
- use github backend for crystal by @jdx in
[#7715](#7715)
- use conda backend for sqlite by @jdx in
[#7718](#7718)
- use conda backend for make by @jdx in
[#7719](#7719)
- swift-package-list use github backend by @jdx in
[#7720](#7720)

### Chore

- increase macos release build timeout to 90 minutes by @jdx in
[#7725](#7725)

### New Contributors

- @yannrouillard made their first contribution in
[#7681](#7681)
- @stk0vrfl0w made their first contribution in
[#7696](#7696)

## 📦 Aqua Registry Updates

#### New Packages (4)

- [`chevdor/tera-cli`](https://github.com/chevdor/tera-cli)
- [`goforj/wire`](https://github.com/goforj/wire)
- [`gravitational/teleport`](https://github.com/gravitational/teleport)
- [`jackchuka/mdschema`](https://github.com/jackchuka/mdschema)

#### Updated Packages (2)

- [`ollama/ollama`](https://github.com/ollama/ollama)
- [`twpayne/chezmoi`](https://github.com/twpayne/chezmoi)
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Jan 22, 2026
## [2026.1.5](https://github.com/jdx/mise/compare/v2026.1.4..v2026.1.5) - 2026-01-19

### 🚀 Features

- **(complete)** add PowerShell completion support by @jdx in [#7746](jdx/mise#7746)
- **(release)** add LLM-generated prose summary to release notes by @jdx in [#7737](jdx/mise#7737)
- **(vfox)** add semver Lua module for version sorting by @jdx in [#7739](jdx/mise#7739)
- **(vfox)** add rolling release support with checksum tracking by @jdx in [#7757](jdx/mise#7757)
- dry filetask parsing and validation by @makp0 in [#7738](jdx/mise#7738)

### 🐛 Bug Fixes

- **(completions)** bump usage-cli to 2.13.1 for PowerShell support by @jdx in [#7756](jdx/mise#7756)
- schema missing env required string variant by @vadimpiven in [#7734](jdx/mise#7734)
- validate unknown fields in filetask headers by @makp0 in [#7733](jdx/mise#7733)
- disable schemacrawler test by @jdx in [#7743](jdx/mise#7743)
- replace double forward slash with single slash in get_task_lists by @collinstevens in [#7744](jdx/mise#7744)
- require LLM for release notes and include aqua section by @jdx in [#7745](jdx/mise#7745)
- preserve {{ version }} in tool options during config load by @jdx in [#7755](jdx/mise#7755)

### 📚 Documentation

- add documentation URL structure guidance to CLAUDE.md by @jdx in [#7740](jdx/mise#7740)
- add pitchfork promotion by @jdx in [#7747](jdx/mise#7747)

### 📦️ Dependency Updates

- relax version constraints and update dependencies by @jdx in [#7736](jdx/mise#7736)
- lock file maintenance by @renovate[bot] in [#7749](jdx/mise#7749)

### Chore

- bump xx to 2.3.1 by @jdx in [#7753](jdx/mise#7753)

### New Contributors

- @collinstevens made their first contribution in [#7744](jdx/mise#7744)
- @makp0 made their first contribution in [#7738](jdx/mise#7738)
- @vadimpiven made their first contribution in [#7734](jdx/mise#7734)

## [2026.1.4](https://github.com/jdx/mise/compare/v2026.1.3..v2026.1.4) - 2026-01-17

### 🚀 Features

- **(conda)** add dependency locking for reproducible installations by @jdx in [#7708](jdx/mise#7708)
- **(http)** add JSON filter syntax for version extraction by @jdx in [#7707](jdx/mise#7707)
- **(http)** add version_expr support and Tera templating by @jdx in [#7723](jdx/mise#7723)
- **(task)** add [monorepo].config_roots for explicit config root listing by @jdx in [#7705](jdx/mise#7705)
- **(task)** support env vars in task dependencies by @jdx in [#7724](jdx/mise#7724)

### 🐛 Bug Fixes

- **(conda)** fix hardcoded library paths in conda packages by @jdx in [#7713](jdx/mise#7713)
- **(env)** avoid venv/go backend deadlock during env resolution by @stk0vrfl0w in [#7696](jdx/mise#7696)
- **(locked)** exempt tool stubs from lockfile requirements by @jdx in [#7729](jdx/mise#7729)
- **(python)** sort CPython versions at end of ls-remote output by @jdx in [#7721](jdx/mise#7721)
- **(task)** resolve remote task files before display and validation commands by @yannrouillard in [#7681](jdx/mise#7681)
- **(task)** support monorepo paths in `mise tasks deps` by @chadxz in [#7699](jdx/mise#7699)
- **(task)** resolve all monorepo path hints in deps by @chadxz in [#7698](jdx/mise#7698)

### 📚 Documentation

- remove outdated roadmap page by @jdx in [#7726](jdx/mise#7726)

### ⚡ Performance

- **(task)** fix task-ls cached performance regression by @jdx in [#7716](jdx/mise#7716)

### 📦️ Dependency Updates

- replace dependency @tsconfig/node22 with @tsconfig/node24 by @renovate[bot] in [#7618](jdx/mise#7618)

### 📦 Registry

- add aqua backend for smithy by @jdx in [#7661](jdx/mise#7661)
- remove low-usage asdf plugins by @jdx in [#7701](jdx/mise#7701)
- disable mirrord test by @jdx in [#7703](jdx/mise#7703)
- use vfox-dotnet as default backend by @jdx in [#7704](jdx/mise#7704)
- use vfox-lua as default lua backend by @jdx in [#7706](jdx/mise#7706)
- add vfox backend for redis by @jdx in [#7709](jdx/mise#7709)
- use vfox-postgres as default postgres backend by @jdx in [#7710](jdx/mise#7710)
- use github backend for kotlin by @jdx in [#7711](jdx/mise#7711)
- add vfox backend for leiningen by @jdx in [#7714](jdx/mise#7714)
- use pipx backend for meson by @jdx in [#7712](jdx/mise#7712)
- use github backend for crystal by @jdx in [#7715](jdx/mise#7715)
- use conda backend for sqlite by @jdx in [#7718](jdx/mise#7718)
- use conda backend for make by @jdx in [#7719](jdx/mise#7719)
- swift-package-list use github backend by @jdx in [#7720](jdx/mise#7720)

### Chore

- increase macos release build timeout to 90 minutes by @jdx in [#7725](jdx/mise#7725)

### New Contributors

- @yannrouillard made their first contribution in [#7681](jdx/mise#7681)
- @stk0vrfl0w made their first contribution in [#7696](jdx/mise#7696)

## [2026.1.3](https://github.com/jdx/mise/compare/v2026.1.2..v2026.1.3) - 2026-01-16

### 🚀 Features

- **(s3)** add S3 backend for private artifact storage by @jdx in [#7668](jdx/mise#7668)
- **(upgrade)** use installed_tool completer for mise upgrade by @jdx in [#7670](jdx/mise#7670)
- **(upgrade)** add --exclude flag to mise upgrade command by @jdx in [#7669](jdx/mise#7669)
- add no hooks and no env flags by @aacebedo in [#7560](jdx/mise#7560)

### 🐛 Bug Fixes

- **(backend)** allow upgrading vfox backend tools with symlinked installations by @TyceHerrman in [#7012](jdx/mise#7012)
- **(backend)** reject architecture mismatches in asset selection by @jdx in [#7672](jdx/mise#7672)
- **(backend)** canonicalize symlink target before installs check by @jdx in [#7671](jdx/mise#7671)
- **(npm)** avoid circular dependency when npm is in dependencies by @AprilNEA in [#7644](jdx/mise#7644)
- **(self-update)** skip update when already at latest version by @jdx in [#7666](jdx/mise#7666)
- fall back to GITHUB_TOKEN for github.com by @subdigital in [#7667](jdx/mise#7667)
- GitHub token fallback by @subdigital in [#7673](jdx/mise#7673)
- inherit tasks from parent configs in monorepos by @chadxz in [#7643](jdx/mise#7643)

### 📚 Documentation

- **(contributing)** update registry examples by @scop in [#7660](jdx/mise#7660)
- **(contributing)** update registry PR title rule by @scop in [#7663](jdx/mise#7663)
- remove 404 link from contributing by @opswole in [#7692](jdx/mise#7692)
- clarify that backend plugins should sort the version list by @ofalvai in [#7680](jdx/mise#7680)

### 📦️ Dependency Updates

- update ghcr.io/jdx/mise:alpine docker digest to 11f659e by @renovate[bot] in [#7685](jdx/mise#7685)
- update ghcr.io/jdx/mise:copr docker digest to 3adaea4 by @renovate[bot] in [#7686](jdx/mise#7686)
- update ghcr.io/jdx/mise:deb docker digest to 8bbca53 by @renovate[bot] in [#7687](jdx/mise#7687)
- update ghcr.io/jdx/mise:rpm docker digest to de81415 by @renovate[bot] in [#7688](jdx/mise#7688)
- update mcr.microsoft.com/devcontainers/rust:1 docker digest to 282e805 by @renovate[bot] in [#7690](jdx/mise#7690)
- update rust docker digest to bed2d7f by @renovate[bot] in [#7691](jdx/mise#7691)

### 📦 Registry

- add oh-my-posh by @scop in [#7659](jdx/mise#7659)
- add bibtex-tidy (npm:bibtex-tidy) by @3w36zj6 in [#7677](jdx/mise#7677)
- remove misconfigured bin_path option from kscript by @risu729 in [#7693](jdx/mise#7693)

### New Contributors

- @AprilNEA made their first contribution in [#7644](jdx/mise#7644)
- @opswole made their first contribution in [#7692](jdx/mise#7692)
- @subdigital made their first contribution in [#7673](jdx/mise#7673)
- @aacebedo made their first contribution in [#7560](jdx/mise#7560)
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Jan 25, 2026
## [2026.1.5](https://github.com/jdx/mise/compare/v2026.1.4..v2026.1.5) - 2026-01-19

### 🚀 Features

- **(complete)** add PowerShell completion support by @jdx in [#7746](jdx/mise#7746)
- **(release)** add LLM-generated prose summary to release notes by @jdx in [#7737](jdx/mise#7737)
- **(vfox)** add semver Lua module for version sorting by @jdx in [#7739](jdx/mise#7739)
- **(vfox)** add rolling release support with checksum tracking by @jdx in [#7757](jdx/mise#7757)
- dry filetask parsing and validation by @makp0 in [#7738](jdx/mise#7738)

### 🐛 Bug Fixes

- **(completions)** bump usage-cli to 2.13.1 for PowerShell support by @jdx in [#7756](jdx/mise#7756)
- schema missing env required string variant by @vadimpiven in [#7734](jdx/mise#7734)
- validate unknown fields in filetask headers by @makp0 in [#7733](jdx/mise#7733)
- disable schemacrawler test by @jdx in [#7743](jdx/mise#7743)
- replace double forward slash with single slash in get_task_lists by @collinstevens in [#7744](jdx/mise#7744)
- require LLM for release notes and include aqua section by @jdx in [#7745](jdx/mise#7745)
- preserve {{ version }} in tool options during config load by @jdx in [#7755](jdx/mise#7755)

### 📚 Documentation

- add documentation URL structure guidance to CLAUDE.md by @jdx in [#7740](jdx/mise#7740)
- add pitchfork promotion by @jdx in [#7747](jdx/mise#7747)

### 📦️ Dependency Updates

- relax version constraints and update dependencies by @jdx in [#7736](jdx/mise#7736)
- lock file maintenance by @renovate[bot] in [#7749](jdx/mise#7749)

### Chore

- bump xx to 2.3.1 by @jdx in [#7753](jdx/mise#7753)

### New Contributors

- @collinstevens made their first contribution in [#7744](jdx/mise#7744)
- @makp0 made their first contribution in [#7738](jdx/mise#7738)
- @vadimpiven made their first contribution in [#7734](jdx/mise#7734)

## [2026.1.4](https://github.com/jdx/mise/compare/v2026.1.3..v2026.1.4) - 2026-01-17

### 🚀 Features

- **(conda)** add dependency locking for reproducible installations by @jdx in [#7708](jdx/mise#7708)
- **(http)** add JSON filter syntax for version extraction by @jdx in [#7707](jdx/mise#7707)
- **(http)** add version_expr support and Tera templating by @jdx in [#7723](jdx/mise#7723)
- **(task)** add [monorepo].config_roots for explicit config root listing by @jdx in [#7705](jdx/mise#7705)
- **(task)** support env vars in task dependencies by @jdx in [#7724](jdx/mise#7724)

### 🐛 Bug Fixes

- **(conda)** fix hardcoded library paths in conda packages by @jdx in [#7713](jdx/mise#7713)
- **(env)** avoid venv/go backend deadlock during env resolution by @stk0vrfl0w in [#7696](jdx/mise#7696)
- **(locked)** exempt tool stubs from lockfile requirements by @jdx in [#7729](jdx/mise#7729)
- **(python)** sort CPython versions at end of ls-remote output by @jdx in [#7721](jdx/mise#7721)
- **(task)** resolve remote task files before display and validation commands by @yannrouillard in [#7681](jdx/mise#7681)
- **(task)** support monorepo paths in `mise tasks deps` by @chadxz in [#7699](jdx/mise#7699)
- **(task)** resolve all monorepo path hints in deps by @chadxz in [#7698](jdx/mise#7698)

### 📚 Documentation

- remove outdated roadmap page by @jdx in [#7726](jdx/mise#7726)

### ⚡ Performance

- **(task)** fix task-ls cached performance regression by @jdx in [#7716](jdx/mise#7716)

### 📦️ Dependency Updates

- replace dependency @tsconfig/node22 with @tsconfig/node24 by @renovate[bot] in [#7618](jdx/mise#7618)

### 📦 Registry

- add aqua backend for smithy by @jdx in [#7661](jdx/mise#7661)
- remove low-usage asdf plugins by @jdx in [#7701](jdx/mise#7701)
- disable mirrord test by @jdx in [#7703](jdx/mise#7703)
- use vfox-dotnet as default backend by @jdx in [#7704](jdx/mise#7704)
- use vfox-lua as default lua backend by @jdx in [#7706](jdx/mise#7706)
- add vfox backend for redis by @jdx in [#7709](jdx/mise#7709)
- use vfox-postgres as default postgres backend by @jdx in [#7710](jdx/mise#7710)
- use github backend for kotlin by @jdx in [#7711](jdx/mise#7711)
- add vfox backend for leiningen by @jdx in [#7714](jdx/mise#7714)
- use pipx backend for meson by @jdx in [#7712](jdx/mise#7712)
- use github backend for crystal by @jdx in [#7715](jdx/mise#7715)
- use conda backend for sqlite by @jdx in [#7718](jdx/mise#7718)
- use conda backend for make by @jdx in [#7719](jdx/mise#7719)
- swift-package-list use github backend by @jdx in [#7720](jdx/mise#7720)

### Chore

- increase macos release build timeout to 90 minutes by @jdx in [#7725](jdx/mise#7725)

### New Contributors

- @yannrouillard made their first contribution in [#7681](jdx/mise#7681)
- @stk0vrfl0w made their first contribution in [#7696](jdx/mise#7696)

## [2026.1.3](https://github.com/jdx/mise/compare/v2026.1.2..v2026.1.3) - 2026-01-16

### 🚀 Features

- **(s3)** add S3 backend for private artifact storage by @jdx in [#7668](jdx/mise#7668)
- **(upgrade)** use installed_tool completer for mise upgrade by @jdx in [#7670](jdx/mise#7670)
- **(upgrade)** add --exclude flag to mise upgrade command by @jdx in [#7669](jdx/mise#7669)
- add no hooks and no env flags by @aacebedo in [#7560](jdx/mise#7560)

### 🐛 Bug Fixes

- **(backend)** allow upgrading vfox backend tools with symlinked installations by @TyceHerrman in [#7012](jdx/mise#7012)
- **(backend)** reject architecture mismatches in asset selection by @jdx in [#7672](jdx/mise#7672)
- **(backend)** canonicalize symlink target before installs check by @jdx in [#7671](jdx/mise#7671)
- **(npm)** avoid circular dependency when npm is in dependencies by @AprilNEA in [#7644](jdx/mise#7644)
- **(self-update)** skip update when already at latest version by @jdx in [#7666](jdx/mise#7666)
- fall back to GITHUB_TOKEN for github.com by @subdigital in [#7667](jdx/mise#7667)
- GitHub token fallback by @subdigital in [#7673](jdx/mise#7673)
- inherit tasks from parent configs in monorepos by @chadxz in [#7643](jdx/mise#7643)

### 📚 Documentation

- **(contributing)** update registry examples by @scop in [#7660](jdx/mise#7660)
- **(contributing)** update registry PR title rule by @scop in [#7663](jdx/mise#7663)
- remove 404 link from contributing by @opswole in [#7692](jdx/mise#7692)
- clarify that backend plugins should sort the version list by @ofalvai in [#7680](jdx/mise#7680)

### 📦️ Dependency Updates

- update ghcr.io/jdx/mise:alpine docker digest to 11f659e by @renovate[bot] in [#7685](jdx/mise#7685)
- update ghcr.io/jdx/mise:copr docker digest to 3adaea4 by @renovate[bot] in [#7686](jdx/mise#7686)
- update ghcr.io/jdx/mise:deb docker digest to 8bbca53 by @renovate[bot] in [#7687](jdx/mise#7687)
- update ghcr.io/jdx/mise:rpm docker digest to de81415 by @renovate[bot] in [#7688](jdx/mise#7688)
- update mcr.microsoft.com/devcontainers/rust:1 docker digest to 282e805 by @renovate[bot] in [#7690](jdx/mise#7690)
- update rust docker digest to bed2d7f by @renovate[bot] in [#7691](jdx/mise#7691)

### 📦 Registry

- add oh-my-posh by @scop in [#7659](jdx/mise#7659)
- add bibtex-tidy (npm:bibtex-tidy) by @3w36zj6 in [#7677](jdx/mise#7677)
- remove misconfigured bin_path option from kscript by @risu729 in [#7693](jdx/mise#7693)

### New Contributors

- @AprilNEA made their first contribution in [#7644](jdx/mise#7644)
- @opswole made their first contribution in [#7692](jdx/mise#7692)
- @subdigital made their first contribution in [#7673](jdx/mise#7673)
- @aacebedo made their first contribution in [#7560](jdx/mise#7560)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants