Skip to content

[pull] main from jdx:main - #143

Merged
pull[bot] merged 3 commits into
AmadeusITGroup:mainfrom
jdx:main
Feb 24, 2026
Merged

pull[bot] merged 3 commits into
AmadeusITGroup:mainfrom
jdx:main

Conversation

@pull

@pull pull Bot commented Feb 24, 2026 •

Copy link
Copy Markdown

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 : )

bvosk and others added 3 commits February 23, 2026 20:18
## Summary

Per-task `timeout` fields were added in #6216 but never enforced at
execution time. This PR completes the implementation by adding native
timeout support to `CmdLineRunner::execute()`.

## Example Usage

```toml
[settings]
task_timeout = "30s"

[tasks.deploy]
run = "npm run deploy"
timeout = "5m"

[tasks.quick]
run = "echo 'done'"
timeout = "10s"
```

```bash
mise run deploy  # killed after 30s (global wins, it's lower)

mise run quick  # killed after 10s (task wins, it's lower)

mise run --timeout=1m deploy  # killed after 30s (global setting still wins)
```

## Key changes

- Added `timeout` field and timer thread to `CmdLineRunner::execute()`
- Modified `exec_program` to compute effective timeout from task config
and global setting
- Enabled all TODO-skipped e2e timeout test scenarios

## Testing

- [x] `mise test:e2e test_task_timeout` — all 6 scenarios pass
- [x] `cargo clippy --all-features` — clean

## LLM use for this PR

I initially built this towards a different idea (that `timeout`s win,
not the global one) but scrapped it after a chat on Discord. All
implementation was done with Opus 4.6 and Codex 5.3, with them reviewing
each other's code a few times. Eventually I settled on this
implementation, trying to keep the changeset as minimal as possible for
review.

This is my first public Rust PR; I don't feel super confident in the
implementation, but I'm happy to take feedback and go back to the
drawing boards with the LLMs if there's a better way to do this. 👍

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
…#8324)

## Summary
- Add `complete -e {name}` before `alias` in fish `set_alias` to clear
stale completions
- Add `complete -e {name}` before `functions -e` in fish `unset_alias`
to clean up leaked completions
- Add fish e2e test for alias completion management

Fixes #8322

## Test plan
- [x] Existing `test_shell_alias` e2e tests pass (bash)
- [x] New `test_shell_alias_fish.fish` e2e test verifies `complete -e`
is emitted on both set and unset
- [x] Unit tests pass

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

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Fish-only shell hook output changes plus an e2e test; low blast radius
but could affect users relying on custom fish completions for alias
names.
> 
> **Overview**
> Updates fish alias management to proactively clear any existing
completions for the alias name by emitting `complete -e {name}` before
both setting (`alias ...`) and unsetting (`functions -e ...`) an alias.
> 
> Adds a new fish e2e test (`test_shell_alias_fish.fish`) that asserts
`mise hook-env -s fish --force` includes the completion cleanup lines on
alias creation and removal, preventing stale/leaked completions across
config changes.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
79eb19a. 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 24, 2026
@pull pull Bot added the ⤵️ pull label Feb 24, 2026
@pull
pull Bot merged commit a9034d6 into AmadeusITGroup:main Feb 24, 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