brokk-sessionwiki 0.30.1

Find, search, and read every AI coding session you've ever had - across Claude Code, Codex, Gemini CLI, OpenCode, Cline, and more.
Documentation
name: CI

on:
  push:
    branches: [main]
  pull_request:

# Least privilege: CI only reads the checkout. Fork PRs already get a read-only
# token with no secrets, but state it explicitly so it can't regress.
permissions:
  contents: read

env:
  CARGO_TERM_COLOR: always

jobs:
  test:
    name: build & test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt, clippy
      - uses: Swatinem/rust-cache@v2
      - name: Format check
        run: cargo fmt --all -- --check
      - name: Clippy
        run: cargo clippy --all-targets -- -D warnings
      - name: Test
        run: cargo test --all
      - uses: actions/setup-python@v6
        with:
          python-version: "3.12"
      - name: Test dependency auto-merge gate
        run: python3 -m unittest discover -s .github/scripts -p 'test_deps_automerge.py'
      - name: Validate Claude Code plugin packaging
        run: |
          set -e
          test -f .claude-plugin/marketplace.json
          test -f plugin/.claude-plugin/plugin.json
          test -f plugin/skills/session-recall/SKILL.md
          test -f plugin/commands/recall.md
          python3 -c "import json; m=json.load(open('.claude-plugin/marketplace.json')); assert m['plugins'][0]['name']=='sessionwiki' and m['plugins'][0]['source']=='./plugin'; p=json.load(open('plugin/.claude-plugin/plugin.json')); assert p['name']=='sessionwiki'"
          grep -q '^description:' plugin/skills/session-recall/SKILL.md
          grep -q '^description:' plugin/commands/recall.md
          # components must live at the plugin root, not nested in .claude-plugin/
          test ! -d plugin/.claude-plugin/skills
          test ! -d plugin/.claude-plugin/commands