Skip to content

feat: Rampart v1.0 prep — reliability, UX, docs, ecosystem#244

Open
peg wants to merge 12 commits intomainfrom
staging
Open

feat: Rampart v1.0 prep — reliability, UX, docs, ecosystem#244
peg wants to merge 12 commits intomainfrom
staging

Conversation

@peg
Copy link
Copy Markdown
Owner

@peg peg commented Mar 25, 2026

v1.0 Readiness Sprint

This PR addresses every blocker and major quality issue identified in the pre-v1.0 audit. It's a significant quality jump.

Code Changes

Reliability

  • Approval store persistence — pending approvals survive rampart serve restarts. JSONL file at ~/.rampart/pending-approvals.jsonl, atomic writes, graceful on missing file. 4 new tests.

UX fixes

  • Smart Always Allow globssudo apt-get install nmap now writes sudo apt-get install * instead of an exact match. No more re-prompting for every package variant. 14-case table-driven test.
  • rampart doctor checks ask: on-miss — the most common silent failure mode now produces a clear warning with the exact fix. Silently skips if openclaw.json doesn't exist.

API improvements

  • Name-based rule deletionDELETE /v1/rules/auto-allowed/{name} replaces fragile index-based deletion. No more TOCTOU race.
  • MCP configurable agent identity--agent-id and --session-id flags on rampart mcp. Agent-scoped policies now work for MCP users.

GoReleaser

  • Reverted homebrew_casks back to brews — casks schema doesn't support install/test fields. Homebrew auto-update now works with the secret in place.

Docs Changes

  • openclaw-approval.md — fixed rampart-proxyrampart-serve, fixed JSON config example, added verify section
  • 9 unpublished guides now live — Windows, CI/headless, Wazuh, project policies, community policies, OpenClaw, Codex, benchmarking, native-ask
  • v0.9.9 migration notes added to README (3 breaking changes with before/after)
  • Snare cross-links added — "Rampart blocks. Snare catches."
  • Codex compatibility table fixed — shell wrapper (v0.4.5+), not LD_PRELOAD
  • FAQ and docs updated to remove require_approval references

Test Status

All packages pass with -race -count=1.

clap [bot] added 3 commits March 26, 2026 16:36
- message patch: new bundle uses '= async () => await runMessageAction({'
  instead of 'const result = await runMessageAction({'
- web_fetch patch: new bundle uses 'readStringParam$1' instead of 'readStringParam'
- doctor: check ask mode at tools.exec.ask in addition to top-level ask

Found during dogfooding on OpenClaw 2026.3.24.
clap [bot] added 2 commits March 29, 2026 17:25
…plugin

- Extract BuildAllowPattern and HashPattern to internal/policy/glob.go
  for shared use by bridge and API handlers
- New POST /v1/rules/learn endpoint with admin auth, smart glob
  computation, atomic file writes, duplicate detection (409), and
  automatic policy reload
- Tests for learn handler (create, duplicate, missing fields, auth)
  and shared glob functions
- Plugin integration and openclaw policy profile
clap [bot] added 7 commits March 30, 2026 01:12
…law.yaml profile, doctor checks

- POST /v1/rules/learn: always-allow writeback API for OpenClaw plugin
- BuildAllowPattern extracted to internal/policy/glob.go (shared)
- rampart setup openclaw --plugin: installs plugin, configures OpenClaw
- rampart setup openclaw --migrate: removes old dist patches, installs plugin
- policies/openclaw.yaml: 13-policy profile for OpenClaw tool surface
- rampart doctor: plugin health check
- Bridge audit sink restored and struct fixes
- All bridge tests passing
…haler

- tests/e2e.yaml: replace deprecated 'require_approval' expect values with
  'ask' (renamed in v0.9.9)
- internal/proxy/learn_handlers.go: add toolList type with custom YAML
  unmarshaler so tool: accepts both scalar ('exec') and sequence (['exec'])
  forms in user override rules
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant