fix: improve claude tool call timeline #25
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| jobs: | |
| build: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - platform: windows-latest | |
| rust-targets: '' | |
| tauri-args: '' | |
| - platform: macos-latest | |
| rust-targets: 'aarch64-apple-darwin,x86_64-apple-darwin' | |
| tauri-args: '--target universal-apple-darwin' | |
| - platform: ubuntu-22.04 | |
| rust-targets: '' | |
| tauri-args: '' | |
| runs-on: ${{ matrix.platform }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| - name: Install Rust stable | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: ${{ matrix.rust-targets }} | |
| - name: Rust cache | |
| uses: swatinem/rust-cache@v2 | |
| with: | |
| workspaces: './src-tauri -> target' | |
| - name: Install Linux system dependencies | |
| if: matrix.platform == 'ubuntu-22.04' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| libwebkit2gtk-4.1-dev \ | |
| libappindicator3-dev \ | |
| librsvg2-dev \ | |
| patchelf \ | |
| libxdo-dev | |
| - name: Install frontend dependencies | |
| run: npm ci | |
| - name: Build Tauri app | |
| uses: tauri-apps/tauri-action@v0 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| tagName: ${{ github.ref_name }} | |
| releaseName: 'Memory Forge ${{ github.ref_name }}' | |
| releaseBody: | | |
| ## Memory Forge ${{ github.ref_name }} | |
| ### 更新 / Changes | |
| - Claude: 按 `tool_use_id` 合并 `tool_use/tool_result`,避免工具结果挂到用户消息下。 | |
| - Claude: 保留纯工具调用块的时间线位置,避免工具历史延后挂到后续助手文本。 | |
| - UI: 纯工具调用块不再显示空白消息气泡。 | |
| - 导出: 纯工具调用块导出为 `Assistant Tool Calls`,避免生成空的助手消息段。 | |
| - 测试: 增加 Claude 工具调用归属和纯工具块回归用例。 | |
| ### 下载 / Download | |
| | 平台 | 文件 | 说明 | | |
| |------|------|------| | |
| | Windows | `*_x64-setup.exe` | 安装包(推荐) | | |
| | Windows | `*_x64-portable.zip` | 便携版(解压即用) | | |
| | Windows | `*_x64_en-US.msi` | MSI 安装包 | | |
| | macOS | `*_universal.dmg` | 通用版(Intel + Apple Silicon) | | |
| | Linux | `*_amd64.AppImage` | 免安装,双击运行 | | |
| | Linux | `*_amd64.deb` | Debian/Ubuntu 安装包 | | |
| releaseDraft: false | |
| prerelease: false | |
| args: ${{ matrix.tauri-args }} | |
| - name: Package Windows portable zip | |
| if: matrix.platform == 'windows-latest' | |
| shell: pwsh | |
| run: | | |
| $exe = "src-tauri\target\release\memory-forge.exe" | |
| $zip = "Memory.Forge_${{ github.ref_name }}_x64-portable.zip" | |
| Compress-Archive -Path $exe -DestinationPath $zip | |
| echo "PORTABLE_ZIP=$zip" >> $env:GITHUB_ENV | |
| - name: Upload Windows portable zip to Release | |
| if: matrix.platform == 'windows-latest' | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: ${{ github.ref_name }} | |
| files: ${{ env.PORTABLE_ZIP }} |