Shared memory and context tools for agentic work.
Code Rooms
name: CI
on:
push:
branches: [main, master]
pull_request:
env:
CARGO_TERM_COLOR: always
# Cancel superseded runs so rapid fix-pushes to a PR don't each hold a full 3-OS
# matrix. Keyed by ref: on a PR (github.ref = refs/pull/N/merge) a newer push
# cancels the in-flight run; on the protected branch (refs/heads/main|master) we
# keep every run so main's CI history stays complete. Biggest recurring saving,
# zero coverage loss. Other PRs (different refs) are never touched.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/master' }}
jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo check --workspace
test:
name: Test (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
- if: runner.os != 'Windows'
run: cargo test --workspace
- if: runner.os == 'Windows'
run: cargo test -p m1nd-core -p m1nd-ingest -p m1nd-mcp
test-status:
name: Test
needs: test
- run: echo "All matrix test jobs passed"
clippy:
name: Clippy
with:
components: clippy
- run: cargo clippy --workspace -- -D warnings
fmt:
name: Format
components: rustfmt
- run: cargo fmt --check
# The release-mode build (cargo build --release across 3 OSes) is intentionally
# NOT in the PR/push path: it was never a required check (required = Test, Clippy,
# Format), cargo check/test/clippy already compile the whole workspace on every
# PR, and release.yml builds + ships the release binaries per target on tag. The
# cross-OS macos/windows coverage that caught the port flake stays in `test`.
# Fails a PR that changes agent-workflow surfaces (MCP instructions/schemas,
# verb dispatch, skills/, the npm host installer) without also updating the
# agent-facing docs in the SAME PR. Anti-cry-wolf: arms only on those surfaces;
# satisfied by any skills//docs/ change, an instructions-only edit, or the
# `agent-docs-exempt` label. PR-only (not run on push). See
# scripts/agent_docs_gate.py.
agent-docs-gate:
name: Agent Docs Gate
if: github.event_name == 'pull_request'
fetch-depth: 0
- name: Ensure base ref is present
run: git fetch --no-tags origin "${{ github.base_ref }}"
- name: Check agent-workflow docs coupling
run: |
python3 scripts/agent_docs_gate.py \
--base-ref "${{ github.base_ref }}" \
--event-path "${{ github.event_path }}"