Skip to content

Comments

[pull] main from jdx:main#118

Merged
pull[bot] merged 7 commits intoAmadeusITGroup:mainfrom
jdx:main
Feb 11, 2026
Merged

[pull] main from jdx:main#118
pull[bot] merged 7 commits intoAmadeusITGroup:mainfrom
jdx:main

Conversation

@pull
Copy link

@pull pull bot commented Feb 11, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

fortmarek and others added 7 commits February 11, 2026 06:02
## Summary
- Add `"linux"` to the `os` field in `registry/tuist.toml` so that `mise
use tuist@latest` works on Linux (tuist added Linux support in v4.140.0)
- Add the missing `asset` field to the Linux override in the vendored
aqua registry, so the correct asset (`tuist-linux-{arch}.tar.gz`) is
downloaded instead of the macOS `tuist.zip`

## Details

Currently, `mise use tuist@latest` on Linux silently does nothing — the
tool is installed but never activated (not added to PATH, shims don't
work). This is because `registry/tuist.toml` restricts tuist to `os =
["macos"]`, causing the toolset builder to skip it during resolution.

Additionally, the vendored aqua registry at
`crates/aqua-registry/aqua-registry/pkgs/tuist/tuist/registry.yaml` is
missing the `asset` field in the Linux override, which causes it to
download the macOS `tuist.zip` instead of `tuist-linux-{arch}.tar.gz`
and fail with "invalid gzip header". This fix is already merged upstream
in aqua-registry (aquaproj/aqua-registry#48252) and will be synced
automatically on the next release cycle, but is needed here for
correctness until then.

## Test plan
- [x] Verified `mise use -g 'aqua:tuist/tuist@latest' && tuist version`
works on Linux aarch64 (Fedora CoreOS via Podman) — confirming the aqua
registry entry with the `asset` fix is correct
- [x] Verified macOS behavior is unchanged (`mise use tuist@latest`
continues to work)
- [ ] CI `test-tool` job validates `tuist version` works on Linux x86_64
with both changes applied

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
## Summary
- Skip prepending `v` to `"latest"` in `try_with_v_prefix_and_repo`
since `"vlatest"` is never a valid tag
- Avoids a wasted API request and confusing debug output (`GET
.../releases/tags/vlatest`)
- Prevents 403 rate limit on the `vlatest` attempt from short-circuiting
the retry loop before `latest` is ever tried

Fixes #8103

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Small conditional change to version-candidate generation for GitHub
tag resolution; limited blast radius and no data/security impact.
> 
> **Overview**
> Updates `try_with_v_prefix_and_repo` to treat the special version
string `"latest"` as a single candidate (no automatic `v`-prefix
fallback), avoiding attempted lookups like `releases/tags/vlatest`.
> 
> This reduces wasted GitHub API requests and prevents a non-404 failure
(e.g., rate limiting) on the invalid `vlatest` attempt from aborting
resolution before `latest` is tried.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
6bd1406. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
## Summary

- Adds a `tools` map to the tera template context, enabling `{{
tools.node.version }}` and `{{ tools.node.path }}` in templates
- Available in task templates and env directives with `tools = true`,
removing the need for `exec(command='node --version')` workarounds
- Keys include both `tool_name` and `short` name for flexibility; only
installed versions are included

## Test plan

- [x] `mise run build` compiles successfully
- [x] `mise run test:e2e test_env_tools` passes with new test cases
verifying `tools.tiny.version` and `tools.tiny.path`
- [x] `mise run lint` passes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Medium risk because it changes template context construction for env
resolution and tasks, and introduces new serialized data derived from
installed tool state; errors could impact env rendering in multiple
commands.
> 
> **Overview**
> Adds a new `tools` map to the Tera template context so templates can
reference installed tool metadata (e.g. `{{ tools.node.version }}` and
`{{ tools.node.path }}`), including both tool and short names.
> 
> Updates env resolution and cached Tera context creation to populate
this map from currently installed tool versions, adds e2e coverage for
`tools.<name>.version/path`, and documents the new template variable and
a lazy-eval env example.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
411378c. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
## Summary
- Adds `--stdin` flag to `mise set` that reads the value from stdin
until EOF, enabling multiline environment variables (e.g., SSH keys,
certificates)
- Strips a single trailing newline to match `gh secret set` behavior
(`echo "val" | mise set --stdin KEY` stores `"val"`)
- Validates exactly one key is provided without `KEY=VALUE` syntax

Closes #6878

## Test plan
- [x] `printf 'line1\nline2' | mise set --stdin MULTI_LINE` stores
multiline value correctly
- [x] `printf 'hello\n' | mise set --stdin TRAILING_NL` strips trailing
newline
- [x] `mise set --stdin KEY1 KEY2` fails with error
- [x] `mise set --stdin KEY1=value` fails with error
- [x] E2E tests pass: `mise run test:e2e test_set`

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk: adds an opt-in `--stdin` path to `mise set` plus
validations; existing `set/get/prompt` behavior is unchanged unless the
new flag is used.
> 
> **Overview**
> Adds `mise set --stdin` to read an env var value from stdin until EOF,
enabling multiline values, and strips a single trailing newline for
parity with `gh secret set`.
> 
> Enforces `--stdin` usage rules (exactly one key, no `KEY=VALUE`
syntax, and conflicts with `--prompt`), and updates CLI docs/man
page/completions plus e2e coverage for multiline input and error cases.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
2a27930. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
…network calls (#8109)

## Summary

- **Fix `MISE_OFFLINE=1` causing hangs/errors** — Previously, offline
mode blocked all HTTP requests with hard errors
(`ensure!(!*env::OFFLINE, ...)`), but callers didn't handle these
gracefully, causing version resolution to fail instead of falling back
to local data.
- **Add `offline` and `prefer_offline` as proper settings** — Now
configurable via `mise.toml` (`settings.offline = true`) and documented,
not just env vars.
- **Add `Settings::offline()` and `Settings::prefer_offline()`
convenience methods** — Combine settings + env vars + CLI flags in one
place, simplifying all call sites.

### Key behavior changes:
- `versions_host::list_versions()` returns `Ok(None)` when
offline/prefer-offline (falls back to local cache)
- `versions_host::track_install()` skips when offline
- `resolve_version()` skips all remote fetching when offline, returns
raw version string
- `list_remote_versions_with_info()` returns empty `vec![]` when offline
instead of making HTTP calls
- `http.rs` ensure checks use `Settings::get().offline()` (covers both
setting and env var)
- Aqua registry wrapper uses `Settings::prefer_offline()` instead of raw
env var access

Closes #6916

## Test plan

- [x] `mise run build` — compiles successfully
- [x] `mise run lint-fix` — all lints pass
- [x] `mise run test:unit` — 469 tests pass
- [x] `MISE_OFFLINE=1 target/debug/mise ls` — lists installed tools
without errors/hangs
- [x] `MISE_OFFLINE=1 target/debug/mise env` — outputs env vars without
errors/hangs
- [x] `MISE_OFFLINE=1 target/debug/mise settings get offline` — returns
`true`
- [x] `target/debug/mise settings get prefer_offline` — returns `false`

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Touches core version resolution and remote version listing paths to
change behavior under `offline`/`prefer_offline`, which could affect
installs and `ls-remote` results if the new gating is too aggressive or
mis-detected.
> 
> **Overview**
> Adds new `offline` and `prefer_offline` settings (schema +
`settings.toml` docs/env bindings) and centralizes their evaluation via
`Settings::offline()`/`Settings::prefer_offline()`.
> 
> Updates multiple network/version codepaths to respect these settings:
HTTP requests now block based on `Settings::offline()`, remote version
listing returns empty when offline, versions-host queries/telemetry and
aqua registry updates are skipped when (prefer-)offline, and tool
version resolution avoids remote lookups in offline mode (with new unit
tests covering defaults and implications).
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
f5fb568. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
## Summary

- Replace the outdated shims-to-PATH snippet in the getting-started
page's Windows/PowerShell section with `mise activate pwsh`, matching
the pattern used for all other shells
- Keep the profile creation helper and non-PowerShell fallback note

Ref: #8090
## Summary
- Sorts all sections in `settings.toml` alphabetically
- Adds a unit test (`test_settings_toml_is_sorted`) that asserts the
keys remain in alphabetical order, so future additions stay organized

## Test plan
- [x] `cargo test test_settings_toml_is_sorted` passes
- [x] `cargo check` succeeds (build.rs still parses settings.toml
correctly)
- [x] `mise run lint-fix` passes clean

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Mostly a non-functional reordering of `settings.toml`, plus a new unit
test that could be slightly brittle if TOML parsing/order semantics
change.
> 
> **Overview**
> Reorders `settings.toml` sections to be alphabetically sorted, without
changing the underlying setting definitions.
> 
> Adds `test_settings_toml_is_sorted` in `src/config/settings.rs` that
parses `settings.toml` and asserts top-level and nested setting keys
remain in alphabetical order (skipping grouping-only tables), preventing
future drift.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
aa1dfdb. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
@pull pull bot locked and limited conversation to collaborators Feb 11, 2026
@pull pull bot added the ⤵️ pull label Feb 11, 2026
@pull pull bot merged commit d8d2495 into AmadeusITGroup:main Feb 11, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants