mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-19 10:33:29 +00:00
Fail closed when installing MCP binaries
Some checks failed
Build and Test / Secret Scan (push) Waiting to run
Build and Test / Detect changed areas (push) Waiting to run
Build and Test / Frontend (push) Blocked by required conditions
Build and Test / Backend tests (api) (push) Blocked by required conditions
Build and Test / Backend tests (rest-0) (push) Blocked by required conditions
Build and Test / Backend tests (rest-1) (push) Blocked by required conditions
Build and Test / Script smoke tests & backend build (push) Blocked by required conditions
Build and Test / Benchmarks (push) Blocked by required conditions
Canonical Governance / governance (push) Waiting to run
Helm CI / Lint and Render Chart (push) Waiting to run
Public docs / check (push) Waiting to run
Core E2E Tests / Validate E2E tier selection (push) Waiting to run
Core E2E Tests / Playwright Core E2E (shard 1/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 2/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 3/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 4/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 5/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 6/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 7/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 8/8) (push) Blocked by required conditions
Core E2E Tests / Agent registration lifecycle (push) Waiting to run
Core E2E Tests / E2E verdict (push) Blocked by required conditions
Unified Agent Native Verification / Linux ARM64 (push) Waiting to run
Unified Agent Native Verification / Linux x64 (push) Waiting to run
Unified Agent Native Verification / Windows x64 (push) Waiting to run
Unified Agent Native Verification / macOS ARM64 (push) Waiting to run
Unified Agent Native Verification / macOS Intel (push) Waiting to run
Unified Agent Native Verification / FreeBSD cross-build contract (push) Waiting to run
Patrol Qualification Regression / Catalog, scorer, and replay regression (push) Has been cancelled
Some checks failed
Build and Test / Secret Scan (push) Waiting to run
Build and Test / Detect changed areas (push) Waiting to run
Build and Test / Frontend (push) Blocked by required conditions
Build and Test / Backend tests (api) (push) Blocked by required conditions
Build and Test / Backend tests (rest-0) (push) Blocked by required conditions
Build and Test / Backend tests (rest-1) (push) Blocked by required conditions
Build and Test / Script smoke tests & backend build (push) Blocked by required conditions
Build and Test / Benchmarks (push) Blocked by required conditions
Canonical Governance / governance (push) Waiting to run
Helm CI / Lint and Render Chart (push) Waiting to run
Public docs / check (push) Waiting to run
Core E2E Tests / Validate E2E tier selection (push) Waiting to run
Core E2E Tests / Playwright Core E2E (shard 1/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 2/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 3/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 4/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 5/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 6/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 7/8) (push) Blocked by required conditions
Core E2E Tests / Playwright Core E2E (shard 8/8) (push) Blocked by required conditions
Core E2E Tests / Agent registration lifecycle (push) Waiting to run
Core E2E Tests / E2E verdict (push) Blocked by required conditions
Unified Agent Native Verification / Linux ARM64 (push) Waiting to run
Unified Agent Native Verification / Linux x64 (push) Waiting to run
Unified Agent Native Verification / Windows x64 (push) Waiting to run
Unified Agent Native Verification / macOS ARM64 (push) Waiting to run
Unified Agent Native Verification / macOS Intel (push) Waiting to run
Unified Agent Native Verification / FreeBSD cross-build contract (push) Waiting to run
Patrol Qualification Regression / Catalog, scorer, and replay regression (push) Has been cancelled
Verify the signed release checksum manifest against Pulse's pinned SSH key before either MCP installer accepts a downloaded binary. Remove the unsigned bypass and require one exact digest entry. Include bare Unix MCP executables in release checksum/signature assembly, cover unavailable, invalid, ambiguous, mismatched, and successful evidence paths with executable regression tests, and enforce MCP installer pins against the configured release key.
This commit is contained in:
parent
d8986c139a
commit
e66f6a26f7
10 changed files with 426 additions and 70 deletions
|
|
@ -71,8 +71,10 @@ outcome without polling the audit endpoint.
|
|||
notifications on the stdio channel, which lets an autonomous MCP-bound agent
|
||||
react to push events without holding a separate HTTP connection. The
|
||||
one-line installers `install-mcp.sh` and `install-mcp.ps1` fetch the
|
||||
matching binary from the latest Pulse release and verify its checksum.
|
||||
Building from source stays available.
|
||||
matching binary from the latest Pulse release, verify the checksum manifest
|
||||
against Pulse's pinned release key, and then verify the binary's checksum.
|
||||
They refuse installation when any integrity evidence is unavailable or
|
||||
invalid. Building from source stays available.
|
||||
|
||||
- **`cmd/agent-probe`** is a small Go binary that walks the discovery,
|
||||
triage, depth, and push flow against a running instance. Use it as a smoke
|
||||
|
|
|
|||
|
|
@ -3301,7 +3301,9 @@ used by Pulse Assistant to OpenCode, Claude Desktop, Claude Code, or
|
|||
other MCP-speaking clients. The installers fetch a published
|
||||
`pulse-mcp-<os>-<arch>` binary from the latest GitHub Release,
|
||||
verify SHA256 against the same `checksums.txt` the rest of the
|
||||
release uses, and place the binary at `~/.local/bin/pulse-mcp`
|
||||
release uses, first verifying `checksums.txt.sshsig` against the pinned
|
||||
Pulse release key and failing closed if either integrity artifact is missing,
|
||||
invalid, or ambiguous, and place the binary at `~/.local/bin/pulse-mcp`
|
||||
(Unix) or `$LOCALAPPDATA\pulse-mcp\pulse-mcp.exe` (Windows). The
|
||||
binary takes no version ldflags because it reads the manifest
|
||||
from the Pulse instance it points at. `scripts/build-release.sh`
|
||||
|
|
@ -3316,7 +3318,7 @@ and `.../install-mcp.sh` are stable redirect targets the
|
|||
installers consume. macOS notarization is intentionally skipped
|
||||
for v1: the README documents the Gatekeeper bypass and the
|
||||
install-script flow downloads the same unsigned binary, with the
|
||||
audit trail of SHA256 verification preserved.
|
||||
audit trail of signed-manifest and SHA256 verification preserved.
|
||||
The adapter's complete request/response tool-list projection, manifest
|
||||
projection, capability and governance metadata formatting, request/response
|
||||
tool filtering, typed input-schema projection, and API route/body call
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue