mneme-brain 0.3.0

Persistent memory system for AI coding agents — Rust + SQLite + FTS5 + MCP. Hybrid search, age encryption, CRDT P2P sync, WASM plugins, TUI with knowledge graph.
Documentation
name: Release

on:
  push:
    tags: ["v*"]

permissions:
  contents: write

env:
  CARGO_TERM_COLOR: always

jobs:
  release:
    name: Release ${{ matrix.target }}
    strategy:
      matrix:
        include:
          - target: x86_64-unknown-linux-gnu
            os: ubuntu-latest
            suffix: ""
          - target: aarch64-unknown-linux-gnu
            os: ubuntu-latest
            suffix: ""
          - target: x86_64-apple-darwin
            os: macos-latest
            suffix: ""
          - target: aarch64-apple-darwin
            os: macos-latest
            suffix: ""
          - target: x86_64-pc-windows-msvc
            os: windows-latest
            suffix: ".exe"

    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v4
      - uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          target: ${{ matrix.target }}

      - name: Install cargo-zigbuild for cross-compilation
        uses: taiki-e/install-action@v2
        with:
          tool: cargo-zigbuild
        if: ${{ matrix.target != 'x86_64-unknown-linux-gnu' && matrix.target != 'x86_64-pc-windows-msvc' }}

      - name: Build release (native)
        run: cargo build --release --target ${{ matrix.target }}
        if: ${{ matrix.target == 'x86_64-unknown-linux-gnu' || matrix.target == 'x86_64-pc-windows-msvc' }}

      - name: Build release (cross-compile with zigbuild)
        run: cargo zigbuild --release --target ${{ matrix.target }}
        if: ${{ matrix.target != 'x86_64-unknown-linux-gnu' && matrix.target != 'x86_64-pc-windows-msvc' }}

      - name: Package binary
        shell: bash
        run: |
          BIN="mneme${{ matrix.suffix }}"
          ASSET="mneme-${{ matrix.target }}${{ matrix.suffix }}"
          cp "target/${{ matrix.target }}/release/$BIN" "$ASSET"
          echo "asset=$ASSET" >> $GITHUB_ENV

      - name: Upload release asset
        uses: softprops/action-gh-release@v2
        with:
          files: ${{ env.asset }}
          generate_release_notes: true