Skip to content

dev → main: v0.1.0 governance hardening, Phase 2 daemon, e2e showcase, dependabot bumps#17

Open
gnanirahulnutakki wants to merge 92 commits into
mainfrom
dev
Open

dev → main: v0.1.0 governance hardening, Phase 2 daemon, e2e showcase, dependabot bumps#17
gnanirahulnutakki wants to merge 92 commits into
mainfrom
dev

Conversation

@gnanirahulnutakki
Copy link
Copy Markdown
Contributor

@gnanirahulnutakki gnanirahulnutakki commented May 26, 2026

Summary

Promotes dev to main with 81 commits. This is the full v0.1.0 hardening cycle that brings all governance features from development into the release branch.

Governance & Policy Engine

  • MIC-State / MIC-Evidence conformance — manifest digests, envelope signatures, visibility checks, hidden-hop detection
  • Multi-backend composition — native, Cedar DSL, forbid_rules with deny-wins semantics
  • Declared telemetry (B.2 fail-closed) — missing fields → INSUFFICIENT_EVIDENCE
  • Delegation replay hardening
  • Biscuit auth + bearer token enforcement

Proxy Surface

  • TLS support, kill switch, rate limiting
  • Prometheus metrics/metrics endpoint
  • Health + JWKS endpoints

Phase 2 Daemon

  • Unix socket server with accept loop
  • Peer credential retrieval + handshake contract
  • Launch-wrapper session proof seam
  • eBPF process exec/exit capture MVP
  • Cgroup allowlist filter + daemon custody scaffold

Claude Code & Gemini Integration

  • Claude Code hook plugin (PreToolUse/PostToolUse with chained receipts)
  • Gemini CLI hook with telemetry
  • Posture detector (read-only Claude Code posture)

Testing

  • E2E showcase — 28 tests across 7 layers using real Ollama
  • Phase 1 + 2 adversarial test suites
  • RWT harness gate — real-world testing harness
  • Coverage tests for log_rotation, backed_policy_store

Dependabot bumps

  • Go: cilium/ebpf, k8s.io/*, controller-runtime, cedar-go
  • Docker: python 3.13→3.14, spire-agent
  • CI: setup-go, setup-python, checkout, cache, codeql-action

Test plan

  • Python: 659 passed, 21 skipped
  • Go: all tests pass
  • E2E showcase: 28/28 passing

🤖 Generated with Claude Code

dependabot Bot and others added 30 commits May 4, 2026 04:45
Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.23.3 to 0.24.0.
- [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases)
- [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md)
- [Commits](kubernetes-sigs/controller-runtime@v0.23.3...v0.24.0)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/controller-runtime
  dependency-version: 0.24.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Document that live external-API tests must be opt-in, locally approved, environment-backed, and non-persistent. Refresh the source-backed Hugo mirrors for the changed guidance.
Documents that `.github/workflows/tests.yml` already covers the offline
examples smoke via `python/tests/test_examples_smoke.py`. Removes the stale
"no examples smoke CI yet" claim from examples/docs. Adds an offline/no-key
examples-smoke regression test for checked-in mission fixtures.

The live-provider framework quickstarts remain opt-in/manual.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Validate ARDUR_TRACE_ID against safe regex before using as path component
  (prevents path traversal via env-controlled trace-id directory name)
- Add read deadline (10s) and 64 KiB line-size limit to daemon Unix socket
  reader (prevents DoS via unbounded read and goroutine leak on slow client)
- Pin all Python dependencies with compatible upper bounds to prevent
  silent pull of breaking-change or vulnerable releases

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Validate ARDUR_HOOK_CC basename against known compiler set
- Validate passthrough daemon hook input has required fields
- Add post-write permission verification warning for private key files
- Mark child_receipt_summary with integrity=unverified flag
- Rename pathWithin to lexicalPathWithin with explicit "do not use for
  production path enforcement" doc comment
- Add cross-references between known-limitations.md and security-model.md
  to prevent conformance-profile documentation drift
- Clarify insufficient_evidence/unknown taxonomy link to coverage-map.md
- Add custom gitleaks rule for EC private key PEM detection with
  expanded allowlist for test fixtures, caches, and state dirs

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Automated Ardur Hugo docs hygiene: regenerate source-backed mirrors from dev and verify sync/local quick gates.
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5.5.0 to 6.4.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](actions/setup-go@d35c59a...4a36011)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: 6.4.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.6.0 to 6.2.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@a26af69...a309ff8)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps python from 3.13-slim to 3.14-slim.

---
updated-dependencies:
- dependency-name: python
  dependency-version: 3.14-slim
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps python from 3.13-slim to 3.14-slim.

---
updated-dependencies:
- dependency-name: python
  dependency-version: 3.14-slim
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.3.1 to 6.0.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@34e1148...de0fac2)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
gnanirahulnutakki and others added 11 commits May 26, 2026 14:34
…setup-python-6.2.0

ci(deps): bump actions/setup-python from 5.6.0 to 6.2.0
…-quickstart/python-3.14-slim

deps(docker)(deps): bump python from 3.13-slim to 3.14-slim in /examples/autogen-quickstart
…in-quickstart/python-3.14-slim

deps(docker)(deps): bump python from 3.13-slim to 3.14-slim in /examples/langchain-quickstart
…checkout-6.0.2

ci(deps): bump actions/checkout from 4.3.1 to 6.0.2
…cache-5.0.5

ci(deps): bump actions/cache from 4.3.0 to 5.0.5
…ient-go-0.36.1

deps(go)(deps): bump k8s.io/client-go from 0.35.0 to 0.36.1 in /go
…m/cilium/ebpf-0.21.0

deps(go)(deps): bump github.com/cilium/ebpf from 0.16.0 to 0.21.0 in /go
…codeql-action-4.35.4

ci(deps): bump github/codeql-action from 3.35.2 to 4.35.4
…n-quickstart/spiffe/spire-agent-1.15.0

deps(docker)(deps): bump spiffe/spire-agent from 1.14.2 to 1.15.0 in /examples/autogen-quickstart
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…, 7 layers)

Adds test_e2e_showcase.py with 28 tests covering every Ardur governance
capability using real Ollama (no mocks). Includes CI job in tests.yml
that runs on workflow_dispatch and pushes to main.

Layers: HTTP Security, Session & Passport, Delegation, Receipts,
MIC Conformance, Policy Backends, Advanced Features.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

import json
import os
import socket
import time
import urllib.error
import urllib.request
import uuid

import pytest

import vibap.mission as mission_module
import pytest

import vibap.mission as mission_module
from vibap.denial import DenialReason

import vibap.mission as mission_module
from vibap.denial import DenialReason
from vibap.passport import ALGORITHM, MissionPassport, issue_passport, verify_passport
import vibap.mission as mission_module
from vibap.denial import DenialReason
from vibap.passport import ALGORITHM, MissionPassport, issue_passport, verify_passport
from vibap.proxy import Decision, GovernanceProxy, serve_proxy
from vibap.proxy import Decision, GovernanceProxy, serve_proxy
from vibap.receipt import verify_chain

from tests.conftest import v01_required_md_extras
)

def test_rate_limiting(self, http_proxy, monkeypatch):
base, _proxy = http_proxy
)

def test_rate_limiting(self, http_proxy, monkeypatch):
base, _proxy = http_proxy
gnanirahulnutakki and others added 2 commits May 26, 2026 14:48
…mon,

Claude Code/Gemini hooks, posture detector, and all enhancements.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@gnanirahulnutakki gnanirahulnutakki changed the title dev → main: e2e showcase, dependabot bumps, controller-runtime update dev → main: v0.1.0 governance hardening, Phase 2 daemon, e2e showcase, dependabot bumps May 26, 2026
@contextmanager
def _locked(state: ChainState):
state.lock_file.parent.mkdir(parents=True, exist_ok=True)
fd = open(state.lock_file, "a+b")
@contextmanager
def _locked(state: ChainState):
state.lock_file.parent.mkdir(parents=True, exist_ok=True)
fd = open(state.lock_file, "a+b")
Comment thread python/vibap/proxy.py
if fd is not None:
try:
os.close(fd)
except OSError:
path.write_text(content, encoding="utf-8")
try:
path.chmod(0o600)
except OSError:
path.write_text(content, encoding="utf-8")
try:
path.chmod(0o600)
except OSError:

keys_dir = tmp_path / "keys"
chain_file = tmp_path / "chain" / "tampered" / CHAIN_FILENAME
_token, _public_key = _issue_gemini_passport(keys_dir)
assert summary.get("agent") == "demo-agent"

def test_delegation_parent_child_independent(self, proxy, keypair):
private_key, _public_key = keypair
assert summary.get("agent") == "demo-agent"

def test_delegation_parent_child_independent(self, proxy, keypair):
private_key, _public_key = keypair
Comment thread python/tests/test_examples_governance_integration.py Fixed
Comment thread python/tests/test_examples_governance_integration.py Fixed
… and eBPF kernel capture

- Content safety plugin: regex-based PII/credential detection (credit cards,
  SSNs, emails, API keys) with deny/redact/warn modes
- OPA/Rego policy backend: subprocess-based Rego evaluation following the
  existing cedar.py backend pattern with graceful degradation
- MCP gateway: JSON-RPC 2.0 stdio transport intercepting tools/call for
  policy evaluation and content safety scanning
- NIST AI RMF mapping: self-assessment across all 4 RMF functions with
  OWASP Agentic Top 10 crosswalk
- eBPF kernel capture: Go SessionRegistry + protocol handler dispatching
  health/register/end/status; Python KernelCaptureClient with Unix socket
  JSON-line protocol; proxy session lifecycle hooks

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Comment thread python/vibap/proxy.py Fixed
Comment thread python/vibap/mcp_gateway.py Fixed
Comment thread python/vibap/mcp_gateway.py Fixed
Comment thread python/vibap/proxy.py Fixed
Comment thread python/vibap/claude_code_hook.py Fixed
Comment thread python/tests/test_mcp_gateway.py Fixed
Comment thread python/tests/test_mcp_gateway.py Fixed
Comment thread python/tests/test_mcp_gateway.py Fixed
Comment thread python/tests/test_content_safety.py Fixed
Comment thread python/tests/test_content_safety.py Fixed
gnanirahulnutakki and others added 4 commits May 27, 2026 11:35
…gateway, kernel capture, and NIST RMF mapping

- New docs: content-safety.md, opa-backend.md, mcp-gateway.md, kernel-capture.md,
  compliance/README.md
- Updated STATUS.md, ROADMAP.md, README.md, docs/README.md, coverage-map.md,
  reference/README.md, and reference/cli.md to reflect all 5 new features
- Coverage map now notes v0.5 kernel capture progress with implementation status
- CLI reference documents the new mcp-gateway subcommand
- Integrations table updated: OPA backend moved from pending to shipped

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Comment thread scripts/generate_adversarial_scoreboard.py Fixed
Add Gemini CLI 0.44.1 BeforeTool fixture parsing/report coverage and regenerate source-backed docs mirrors for the updated CLI contract.
Comment thread python/vibap/gemini_cli_hook.py Fixed
gnanirahulnutakki and others added 5 commits May 30, 2026 00:17
Track the source-doc reports section index so fresh CI clones satisfy the generated Hugo mirror check.
Redacts internal-only runtime surfaces, refreshes public docs/site mirrors, adds proxy unit coverage, repairs Go 1.26 CI, and introduces ratcheted Python/Go lint gates. Merged after all current GitHub Actions check-runs on 4f2d5ee completed successfully; admin merge used because dev branch protection still required stale aggregate status contexts that are no longer emitted by Actions.
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.

2 participants