diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index be8dfc7..7674bea 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -18,6 +18,7 @@ body: - CLI - ACP - Both + - None validations: required: true diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml index f5702ab..279c21d 100644 --- a/.github/ISSUE_TEMPLATE/feature-request.yml +++ b/.github/ISSUE_TEMPLATE/feature-request.yml @@ -18,6 +18,7 @@ body: - CLI - ACP - Both + - None validations: required: true diff --git a/.github/workflows/build-and-upload.yml b/.github/workflows/build-and-upload.yml index 74e6055..c49a9ae 100644 --- a/.github/workflows/build-and-upload.yml +++ b/.github/workflows/build-and-upload.yml @@ -127,3 +127,30 @@ jobs: files: release-assets/*.zip env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + nix-build: + needs: configure + name: "Nix: ${{ matrix.os }}-${{ matrix.arch }}" + strategy: + matrix: ${{ fromJSON(needs.configure.outputs.matrix) }} + runs-on: ${{ matrix.runner }} + steps: + - name: Checkout repository + if: matrix.os != 'windows' + uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4 + + - name: Install Nix + if: matrix.os != 'windows' + uses: cachix/install-nix-action@4e002c8ec80594ecd40e759629461e26c8abed15 # v31 + + - name: Build with Nix + if: matrix.os != 'windows' + shell: bash + run: | + nix build .# + + - name: Nix Smoke Test + if: matrix.os != 'windows' + shell: bash + run: | + nix run .# -- --version diff --git a/.github/workflows/issue-labeler.yml b/.github/workflows/issue-labeler.yml new file mode 100644 index 0000000..c3a4b84 --- /dev/null +++ b/.github/workflows/issue-labeler.yml @@ -0,0 +1,61 @@ +name: Issue Labeler + +on: + issues: + types: [opened] + +jobs: + label-component: + runs-on: ubuntu-latest + permissions: + issues: write + steps: + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 + + - name: Parse bug report form + id: parse-bug + uses: stefanbuck/github-issue-parser@25f1485edffc1fee3ea68eb9f59a72e58720ffc4 # v3 + with: + template-path: .github/ISSUE_TEMPLATE/bug-report.yml + continue-on-error: true + + - name: Parse feature request form + id: parse-feature + uses: stefanbuck/github-issue-parser@25f1485edffc1fee3ea68eb9f59a72e58720ffc4 # v3 + with: + template-path: .github/ISSUE_TEMPLATE/feature-request.yml + continue-on-error: true + + - name: Apply component label + uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7 + with: + script: | + // Get component from either bug report or feature request + const bugComponent = '${{ steps.parse-bug.outputs.issueparser_component }}'; + const featureComponent = '${{ steps.parse-feature.outputs.issueparser_component }}'; + const component = bugComponent || featureComponent; + + if (!component) { + console.log('No component field found, skipping labeling'); + return; + } + + const labels = []; + + if (component === 'CLI') { + labels.push('CLI'); + } else if (component === 'ACP') { + labels.push('ACP'); + } else if (component === 'Both') { + labels.push('CLI', 'ACP'); + } + + if (labels.length > 0) { + await github.rest.issues.addLabels({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + labels: labels + }); + console.log(`Added labels: ${labels.join(', ')}`); + } diff --git a/.vscode/launch.json b/.vscode/launch.json index 0e3bc85..162d0ef 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,5 +1,5 @@ { - "version": "1.3.0", + "version": "1.3.1", "configurations": [ { "name": "ACP Server", diff --git a/CHANGELOG.md b/CHANGELOG.md index dcec783..a1ed39b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.3.1] - 2025-12-24 + +### Fixed + +- Fix crash when continuing conversation +- Fix Nix flake to not export python + ## [1.3.0] - 2025-12-23 ### Added diff --git a/distribution/zed/extension.toml b/distribution/zed/extension.toml index 8c05c55..1cbd0f0 100644 --- a/distribution/zed/extension.toml +++ b/distribution/zed/extension.toml @@ -1,7 +1,7 @@ id = "mistral-vibe" name = "Mistral Vibe" description = "Mistral's open-source coding assistant" -version = "1.3.0" +version = "1.3.1" schema_version = 1 authors = ["Mistral AI"] repository = "https://github.com/mistralai/mistral-vibe" @@ -11,25 +11,25 @@ name = "Mistral Vibe" icon = "./icons/mistral_vibe.svg" [agent_servers.mistral-vibe.targets.darwin-aarch64] -archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.3.0/vibe-acp-darwin-aarch64-1.3.0.zip" +archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.3.1/vibe-acp-darwin-aarch64-1.3.1.zip" cmd = "./vibe-acp" [agent_servers.mistral-vibe.targets.darwin-x86_64] -archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.3.0/vibe-acp-darwin-x86_64-1.3.0.zip" +archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.3.1/vibe-acp-darwin-x86_64-1.3.1.zip" cmd = "./vibe-acp" [agent_servers.mistral-vibe.targets.linux-aarch64] -archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.3.0/vibe-acp-linux-aarch64-1.3.0.zip" +archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.3.1/vibe-acp-linux-aarch64-1.3.1.zip" cmd = "./vibe-acp" [agent_servers.mistral-vibe.targets.linux-x86_64] -archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.3.0/vibe-acp-linux-x86_64-1.3.0.zip" +archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.3.1/vibe-acp-linux-x86_64-1.3.1.zip" cmd = "./vibe-acp" [agent_servers.mistral-vibe.targets.windows-aarch64] -archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.3.0/vibe-acp-windows-aarch64-1.3.0.zip" +archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.3.1/vibe-acp-windows-aarch64-1.3.1.zip" cmd = "./vibe-acp.exe" [agent_servers.mistral-vibe.targets.windows-x86_64] -archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.3.0/vibe-acp-windows-x86_64-1.3.0.zip" +archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.3.1/vibe-acp-windows-x86_64-1.3.1.zip" cmd = "./vibe-acp.exe" diff --git a/flake.lock b/flake.lock index 6e55053..cc4667e 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1765472234, - "narHash": "sha256-9VvC20PJPsleGMewwcWYKGzDIyjckEz8uWmT0vCDYK0=", + "lastModified": 1766309749, + "narHash": "sha256-3xY8CZ4rSnQ0NqGhMKAy5vgC+2IVK0NoVEzDoOh4DA4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2fbfb1d73d239d2402a8fe03963e37aab15abe8b", + "rev": "a6531044f6d0bef691ea18d4d4ce44d0daa6e816", "type": "github" }, "original": { @@ -114,11 +114,11 @@ ] }, "locked": { - "lastModified": 1765631794, - "narHash": "sha256-90d//IZ4GXipNsngO4sb2SAPbIC/a2P+IAdAWOwpcOM=", + "lastModified": 1766021660, + "narHash": "sha256-UUfz7qWB1Rb2KjGVCimt//Jncv3TgJwffPqbzqpkmgY=", "owner": "pyproject-nix", "repo": "uv2nix", - "rev": "4cca323a547a1aaa9b94929c4901bed5343eafe8", + "rev": "19fa99be3409f55ec05e823c66c9769df7a8dd17", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index c070409..e784391 100644 --- a/flake.nix +++ b/flake.nix @@ -69,8 +69,13 @@ pyprojectOverrides ] ); + inherit (pkgs.callPackages pyproject-nix.build.util { }) mkApplication; in { - packages.default = pythonSet.mkVirtualEnv "mistralai-vibe-env" workspace.deps.default; + + packages.default = mkApplication { + venv = pythonSet.mkVirtualEnv "mistralai-vibe-env" workspace.deps.default; + package = pythonSet.mistral-vibe; + }; apps = { default = { diff --git a/pyproject.toml b/pyproject.toml index 5cd3769..38b0499 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "mistral-vibe" -version = "1.3.0" +version = "1.3.1" description = "Minimal CLI coding agent by Mistral" readme = "README.md" requires-python = ">=3.12" diff --git a/tests/acp/test_initialize.py b/tests/acp/test_initialize.py index fef3156..2fd3b6b 100644 --- a/tests/acp/test_initialize.py +++ b/tests/acp/test_initialize.py @@ -41,7 +41,7 @@ class TestACPInitialize: ), ) assert response.agentInfo == Implementation( - name="@mistralai/mistral-vibe", title="Mistral Vibe", version="1.3.0" + name="@mistralai/mistral-vibe", title="Mistral Vibe", version="1.3.1" ) assert response.authMethods == [] @@ -63,7 +63,7 @@ class TestACPInitialize: ), ) assert response.agentInfo == Implementation( - name="@mistralai/mistral-vibe", title="Mistral Vibe", version="1.3.0" + name="@mistralai/mistral-vibe", title="Mistral Vibe", version="1.3.1" ) assert response.authMethods is not None diff --git a/uv.lock b/uv.lock index 21f263b..571a87e 100644 --- a/uv.lock +++ b/uv.lock @@ -661,7 +661,7 @@ wheels = [ [[package]] name = "mistral-vibe" -version = "1.3.0" +version = "1.3.1" source = { editable = "." } dependencies = [ { name = "agent-client-protocol" }, diff --git a/vibe/__init__.py b/vibe/__init__.py index a7048c9..f972a53 100644 --- a/vibe/__init__.py +++ b/vibe/__init__.py @@ -3,4 +3,4 @@ from __future__ import annotations from pathlib import Path VIBE_ROOT = Path(__file__).parent -__version__ = "1.3.0" +__version__ = "1.3.1" diff --git a/vibe/cli/textual_ui/widgets/status_message.py b/vibe/cli/textual_ui/widgets/status_message.py index fdf47f5..1d1fc83 100644 --- a/vibe/cli/textual_ui/widgets/status_message.py +++ b/vibe/cli/textual_ui/widgets/status_message.py @@ -17,6 +17,7 @@ class StatusMessage(SpinnerMixin, Static): self._initial_text = initial_text self._indicator_widget: Static | None = None self._text_widget: Static | None = None + self.success = True self.init_spinner() super().__init__(**kwargs)