Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
ee33303
feat(hook-manager): register managers that need no install fix (#1825)
Kaap10 Oct 26, 2026
c629fe0
chore(hook-manager): fix markdownlint blank line and ruff formatting
Kaap10 Oct 26, 2026
27597d5
docs(security): Vulnogram review comments cannot be resolved (#1840)
potiuk Oct 26, 2026
34e3e0b
fix(setup): make isolated-setup-verify checks catch false passes (#1808)
shahar1 Oct 26, 2026
067b527
fix(container-gateway): refuse driver options on volume create (#1842)
potiuk Oct 26, 2026
74017f4
feat(security): add deterministic public-surface scrub Claude Code mo…
Kaap10 Oct 26, 2026
4b0279d
chore: bump dev version to 0.9.0.dev202610262031 (#1843)
github-actions[bot] Oct 26, 2026
d6f68f4
chore(deps): bump certifi from 2026.7.22 to 2026.10.18 (#1844)
dependabot[bot] Oct 26, 2026
450c797
fix(agent-isolation): hint on container-gateway policy refusals (#1810)
shahar1 Oct 26, 2026
fc8919e
feat(tools/discourse): list category topics by latest activity (#1841)
MakerFlyFly Oct 26, 2026
d380ad5
feat(harness): support Antigravity, remove Gemini CLI (#1845)
potiuk Oct 27, 2026
a951715
chore: bump dev version to 0.9.0.dev202610270025 (#1846)
github-actions[bot] Oct 27, 2026
0d098c3
feat(harness): support Pi; fix OpenCode install docs (#1847)
potiuk Oct 27, 2026
c5c1684
chore(deps): bump the python-deps group across 1 directory with 3 upd…
dependabot[bot] Oct 27, 2026
cc19241
chore(deps): bump the github-actions group with 3 updates (#1849)
dependabot[bot] Oct 27, 2026
d968624
chore(deps): bump @anthropic-ai/sandbox-runtime (#1848)
dependabot[bot] Oct 27, 2026
a9fa208
feat(harness): Goose plugin hook and whole-process sandbox (#1851)
potiuk Oct 27, 2026
5e7e438
fix(hook-manager): address review on #1838
Kaap10 Oct 27, 2026
be1a5d7
fix(adversarial-review): keep the end of a reviewer's raw output and …
potiuk Oct 27, 2026
faf3248
fix(adversarial-review): say why an Antigravity review came back empt…
potiuk Oct 27, 2026
01a5044
fix(hook-manager): address review 2 on #1838
Kaap10 Oct 27, 2026
e669eb1
fix(code-review): give inline comments the finding's text, not just i…
potiuk Oct 27, 2026
fb0ea2a
Restructure the threat model project-wide and add SECURITY.md (#1859)
potiuk Oct 27, 2026
300df22
security: one reply, one thread -- never combine replies across threa…
potiuk Oct 27, 2026
5dd9a15
agent-guard: see through more wrappers; read MAGPIE_GUARD_OFF from th…
potiuk Oct 27, 2026
a8ced5e
container-gateway: refuse writable binds over agent and git config (#…
potiuk Oct 27, 2026
735aad3
Tighten adapter defaults: TLS, collaborator rollups, HTTPS-only bridg…
potiuk Oct 27, 2026
f822ee4
Security workflow: stricter relay detection and advisory URL checks (…
potiuk Oct 27, 2026
b5dce81
agent-guard: a continued heredoc line is not stripped (#1864)
potiuk Oct 27, 2026
4fc0032
setup: import the pre-flight checker only from outside the working tr…
potiuk Oct 27, 2026
282f075
agent-guard: strip heredoc bodies only where bash treats them as data…
potiuk Oct 27, 2026
56f55d1
skill-evals(setup): bring seven drifted steps in line with the skill …
potiuk Oct 27, 2026
9548297
agent-guard: fail closed on untokenisable lines that can spell git or…
potiuk Oct 27, 2026
4803194
adversarial-review: keep agy from handing the review to a subagent (#…
potiuk Oct 27, 2026
fc668d5
skill-evals(security-issue-sync): follow the dashboard steps as they …
potiuk Oct 27, 2026
5395957
setup: import the pre-flight checker from a per-user directory, never…
potiuk Oct 27, 2026
6c6ea8b
agent-guard: keep a command whole when any line is continued (#1869)
potiuk Oct 27, 2026
4fc005f
agent-guard: split a command line into commands the way bash does (#1…
potiuk Oct 27, 2026
eec00bf
agent-guard: check the command a literal name and leading redirection…
potiuk Oct 27, 2026
a5b4d82
fix(security-issue-deduplicate): keep the CVE both trackers share (#1…
dpol1 Oct 27, 2026
5bb1ea3
setup: trust a VCS directory as the personal layer only when it is un…
potiuk Oct 27, 2026
5095d45
security-cve-allocate: one CVE-allocated draft per reporter, each on …
potiuk Oct 27, 2026
0413a7f
test(security): use claude-code/testing tool noun in public-surface-s…
Kaap10 Oct 27, 2026
5a9e1ca
Merge branch 'main' into feat/hook-manager-no-install-fix-1825
potiuk Oct 27, 2026
c8e31ca
docs(hook-manager): mark the Maven notes as read, and the shim rule's…
potiuk Oct 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .apache-magpie-overrides/project.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ produces.
| `upstream_agents_md_url` | `https://github.com/apache/magpie/blob/main/AGENTS.md` (derived) | Conventions this repo mirrors |
| `upstream_contributing_docs_url` | `https://github.com/apache/magpie/blob/main/CONTRIBUTING.md` (derived: file exists) | |
| `upstream_genai_disclosure_anchor` | `https://github.com/apache/magpie/blob/main/docs/ai-contribution-policy.md` | |
| `upstream_security_policy_url` | `https://www.apache.org/security/` (ASF default; the repo ships no `SECURITY.md`) | |
| `upstream_security_policy_url` | [`SECURITY.md`](../SECURITY.md) — reports go to `[email protected]` under the ASF process (`https://www.apache.org/security/`); the threat model is [`docs/security/threat-model.md`](../docs/security/threat-model.md) | |

## Mailing lists

Expand Down
30 changes: 15 additions & 15 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,85 +9,85 @@
{
"name": "magpie-adversarial-review",
"source": "./plugins/magpie-adversarial-review",
"version": "0.9.0.dev202610251812",
"description": "Apache Magpie \u2014 adversarial review: runs other models' CLIs (Codex, Copilot, Gemini, Claude) read-only over a change before its PR is created, and merges their findings. Runs from the installed plugin, so no repository needs a copy."
"version": "0.9.0.dev202610270025",
"description": "Apache Magpie \u2014 adversarial review: runs other models' CLIs (Codex, Copilot, Antigravity, Pi, Grok, Goose, Claude) read-only over a change before its PR is created, and merges their findings. Runs from the installed plugin, so no repository needs a copy."
},
{
"name": "magpie-agent-guard",
"source": "./plugins/magpie-agent-guard",
"version": "0.9.0.dev202610251812",
"version": "0.9.0.dev202610270025",
"description": "Apache Magpie \u2014 deterministic pre-execution command guard: a PreToolUse hook that denies shell commands which would break a hard framework rule. Runs from the installed plugin, so no repository or worktree needs a local copy."
},
{
"name": "magpie-security-tools",
"source": "./plugins/magpie-security-tools",
"version": "0.9.0.dev202610251812",
"version": "0.9.0.dev202610270025",
"description": "Apache Magpie \u2014 the tools the security skills run (tracker field and rollup edits, CVE JSON, the privacy gate, the scan importer), shipped so a marketplace install needs no framework checkout."
},
{
"name": "magpie-vetted-ops",
"source": "./plugins/magpie-vetted-ops",
"version": "0.9.0.dev202610251812",
"version": "0.9.0.dev202610270025",
"description": "Apache Magpie \u2014 vetted-ops: a dispatcher for fixed, policy-scoped forge operations, so a session needs one allowlist entry instead of a dozen wildcard `ask` rules. Runs from the installed plugin, which is what keeps the operation catalogue out of reach of the agent that calls it."
},
{
"name": "magpie-contributor-growth",
"source": "./plugins/magpie-contributor-growth",
"version": "0.9.0.dev202610251812",
"version": "0.9.0.dev202610270025",
"description": "Apache Magpie contributor-growth family (9 skills)."
},
{
"name": "magpie-issue",
"source": "./plugins/magpie-issue",
"version": "0.9.0.dev202610251812",
"version": "0.9.0.dev202610270025",
"description": "Apache Magpie issue family (8 skills)."
},
{
"name": "magpie-mentoring",
"source": "./plugins/magpie-mentoring",
"version": "0.9.0.dev202610251812",
"version": "0.9.0.dev202610270025",
"description": "Apache Magpie mentoring family (4 skills)."
},
{
"name": "magpie-pairing",
"source": "./plugins/magpie-pairing",
"version": "0.9.0.dev202610251812",
"version": "0.9.0.dev202610270025",
"description": "Apache Magpie pairing family (2 skills)."
},
{
"name": "magpie-pr-management",
"source": "./plugins/magpie-pr-management",
"version": "0.9.0.dev202610251812",
"version": "0.9.0.dev202610270025",
"description": "Apache Magpie pr-management family (9 skills)."
},
{
"name": "magpie-release-management",
"source": "./plugins/magpie-release-management",
"version": "0.9.0.dev202610251812",
"version": "0.9.0.dev202610270025",
"description": "Apache Magpie release-management family (10 skills)."
},
{
"name": "magpie-repo-health",
"source": "./plugins/magpie-repo-health",
"version": "0.9.0.dev202610251812",
"version": "0.9.0.dev202610270025",
"description": "Apache Magpie repo-health family (8 skills)."
},
{
"name": "magpie-security",
"source": "./plugins/magpie-security",
"version": "0.9.0.dev202610251812",
"version": "0.9.0.dev202610270025",
"description": "Apache Magpie security family (16 skills)."
},
{
"name": "magpie-setup",
"source": "./plugins/magpie-setup",
"version": "0.9.0.dev202610251812",
"version": "0.9.0.dev202610270025",
"description": "Apache Magpie setup family (12 skills)."
},
{
"name": "magpie-utilities",
"source": "./plugins/magpie-utilities",
"version": "0.9.0.dev202610251812",
"version": "0.9.0.dev202610270025",
"description": "Apache Magpie utilities family (5 skills)."
}
]
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "magpie",
"version": "0.9.0.dev202610251812",
"version": "0.9.0.dev202610270025",
"description": "Apache Magpie \u2014 a reusable, governance-agnostic framework of agentic skills for maintaining open-source projects: release management, security triage, PR and issue workflows, contributor growth, and repo health.",
"author": {
"name": "Apache Magpie",
Expand Down
2 changes: 1 addition & 1 deletion .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "magpie",
"version": "0.9.0.dev202610251812",
"version": "0.9.0.dev202610270025",
"description": "Apache Magpie — agentic skills for maintaining open-source projects.",
"skills": "./skills"
}
123 changes: 0 additions & 123 deletions .gemini/policies/magpie.toml

This file was deleted.

36 changes: 0 additions & 36 deletions .gemini/settings.json

This file was deleted.

18 changes: 18 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,24 @@ updates:
patterns:
- "*"

# The root package.json makes the repository a Pi package; its lockfile
# pins the sandbox runtime the Pi extension runs bash in. Regenerate it
# with the flags Pi installs with, plus `--package-lock-only
# --ignore-scripts` (see docs/adapters/pi.md).
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
cooldown:
default-days: 7
semver-major-days: 7
semver-minor-days: 7
semver-patch-days: 7
groups:
pi-package:
patterns:
- "*"

# All Python projects in this repo, consolidated into one update
# entry with `directories:` (plural). Dependabot writes per-directory
# inside a SINGLE weekly PR per group, so this collapses what was
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ jobs:
persist-credentials: false

- name: Initialize CodeQL
uses: github/codeql-action/init@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3
uses: github/codeql-action/init@6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee # v4.39.0
with:
languages: ${{ matrix.language }}
# Neither the Python tools (stdlib-only / single OAuth dep, no
Expand All @@ -135,6 +135,6 @@ jobs:
- plugins/*/tools/**

- name: Perform CodeQL analysis
uses: github/codeql-action/analyze@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3
uses: github/codeql-action/analyze@6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee # v4.39.0
with:
category: "/language:${{ matrix.language }}"
2 changes: 1 addition & 1 deletion .github/workflows/rat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
- uses: actions/setup-java@b843ebf9b913146b38da2eaa7aeddf76074ae1ad # v6.1.0
with:
distribution: temurin
java-version: "21"
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/sandbox-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ on: # yamllint disable-line rule:truthy
- ".claude/settings.local.json"
- "tools/agent-isolation/claude-settings.local.template.json"
- "plugins/magpie-setup/skills/setup/family-mcp-allows.json"
- ".gemini/**"
- "tools/agent-isolation/antigravity/**"
- "tools/sandbox-lint/**"
- ".github/workflows/sandbox-lint.yml"
push:
Expand All @@ -45,7 +45,7 @@ on: # yamllint disable-line rule:truthy
- ".claude/settings.local.json"
- "tools/agent-isolation/claude-settings.local.template.json"
- "plugins/magpie-setup/skills/setup/family-mcp-allows.json"
- ".gemini/**"
- "tools/agent-isolation/antigravity/**"
- "tools/sandbox-lint/**"
- ".github/workflows/sandbox-lint.yml"

Expand Down Expand Up @@ -104,5 +104,5 @@ jobs:
fi
- name: Run sandbox-lint
run: uv run sandbox-lint
- name: Check Gemini sandbox and policy profile
run: uv run sandbox-lint --gemini .gemini
- name: Check the user-scope Antigravity profile
run: uv run sandbox-lint --antigravity tools/agent-isolation/antigravity
6 changes: 6 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,12 @@ jobs:
# stable across runs (the split is deterministic), and a single
# member's key is its name.
cache-suffix: "tests-${{ matrix.batch.key }}"
# Node runs the TypeScript tests of the Pi extension
# (tools/agent-isolation/pi/, via `node --test` type stripping), which
# the agent-isolation suite wraps; without it those tests skip.
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: "24"
- name: Sync the batch's members (and ruff / mypy / pytest from the root dev group)
# Dev-group deps live in the root pyproject (`[dependency-groups]
# dev`) and only land in the shared workspace `.venv` when an
Expand Down
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,16 @@ logs
.build
.claude/worktrees/
.worktrees/
# The root package.json makes the repository a Pi package, and Pi installs its
# dependencies into its own clone. package-lock.json is committed (it pins the
# sandbox runtime's whole tree, integrity hashes included); node_modules is not.
/node_modules/
.claude/settings.local.json
# Skill source lives in skills/. The framework self-adopts by committing
# magpie-<skill> symlinks (see skills/setup/adopt.md → "Local
# self-adoption"). .agents/skills/ is the ONE canonical home: its
# magpie-<skill> entries point into ../../skills/<skill>/ (the path shared
# by Codex, Cursor, Gemini CLI, Copilot, …). Every other agent dir is a
# by Codex, Cursor, Antigravity, Copilot, …). Every other agent dir is a
# thin relay: .claude/skills/ (Claude Code) and .github/skills/ (GitHub's
# skill loader) each carry magpie-<skill> → ../../.agents/skills/magpie-<skill>.
# Those symlinks ARE committed — their targets are in-repo and always
Expand Down
Loading
Loading