Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
145 commits
Select commit Hold shift + click to select a range
5812b87
deps(go)(deps): bump sigs.k8s.io/controller-runtime in /go
dependabot[bot] May 4, 2026
c6f8010
docs: clarify phase 1 evidence bundle claims
gnanirahulnutakki May 11, 2026
4c50942
docs: reframe Claude Code demo as archival
gnanirahulnutakki May 11, 2026
46171d4
docs: add phase 1 demo packet
gnanirahulnutakki May 11, 2026
df14433
docs: fix phase 1 presentation drift
gnanirahulnutakki May 11, 2026
67fb127
Harden daemon peer authorization boundary
gnanirahulnutakki May 11, 2026
8acd18a
Harden daemon peer handshake contract
gnanirahulnutakki May 11, 2026
f97d60a
Add Linux peer credential retrieval seam
gnanirahulnutakki May 11, 2026
96d5d07
Harden daemon accepted-connection bridge
gnanirahulnutakki May 11, 2026
dd679a0
Document Phase 2 daemon claim boundary
gnanirahulnutakki May 11, 2026
404f555
Add daemon accept-loop dry-run contract
gnanirahulnutakki May 11, 2026
69de183
docs: refresh Phase 2 accept-loop claim boundary
gnanirahulnutakki May 11, 2026
6ec2bb5
docs: clarify live provider credential handling
gnanirahulnutakki May 12, 2026
825baab
feat: add launch-wrapper session proof seam
gnanirahulnutakki May 12, 2026
cfc9550
fix(rwt): harden redaction failure path and update claim ledger
May 12, 2026
3b77079
feat: add derived posture index view
May 13, 2026
c093964
fix: redact local paths in RWT shareable artifacts
gnanirahulnutakki May 13, 2026
8868d7d
docs: reconcile examples-smoke claim ledger to repo-wide Python CI
gnanirahulnutakki May 13, 2026
0bb50e4
fix: harden daemon socket and dependency boundaries
gnanirahulnutakki May 13, 2026
1cba220
fix: address low-severity review findings across security boundaries
gnanirahulnutakki May 13, 2026
4d76aad
docs(site): sync source-backed Hugo pages
gnanirahulnutakki May 13, 2026
792e14d
fix: harden delegation replay semantics
May 14, 2026
627b4fe
feat: add Gemini CLI local proof fixture
May 14, 2026
7ac2249
fix: add Gemini claim metadata page
gnanirahulnutakki May 14, 2026
38ef136
fix: harden Claude trace-id paths
May 14, 2026
eb554ba
ci(deps): bump actions/setup-go from 5.5.0 to 6.4.0
dependabot[bot] May 14, 2026
ee5a172
ci(deps): bump actions/setup-python from 5.6.0 to 6.2.0
dependabot[bot] May 14, 2026
b1c1999
deps(docker)(deps): bump python in /examples/autogen-quickstart
dependabot[bot] May 14, 2026
924e204
deps(docker)(deps): bump python in /examples/langchain-quickstart
dependabot[bot] May 14, 2026
d4d4f96
ci(deps): bump actions/checkout from 4.3.1 to 6.0.2
dependabot[bot] May 14, 2026
754a181
ci(deps): bump actions/cache from 4.3.0 to 5.0.5
dependabot[bot] May 14, 2026
6e7c17c
deps(go)(deps): bump k8s.io/client-go from 0.35.0 to 0.36.1 in /go
dependabot[bot] May 14, 2026
e1df577
deps(go)(deps): bump github.com/cilium/ebpf from 0.16.0 to 0.21.0 in /go
dependabot[bot] May 14, 2026
e143441
ci(deps): bump github/codeql-action from 3.35.2 to 4.35.4
dependabot[bot] May 14, 2026
c9eccdd
fix: redact Codex app-server shareable report fields
gnanirahulnutakki May 15, 2026
763987b
docs: remove "honest" over-framing, hedging, and outdated language
gnanirahulnutakki May 15, 2026
ecf4c03
Merge remote dev into local with doc wording fixes reapplied
gnanirahulnutakki May 15, 2026
67caa4e
feat: add read-only Claude Code posture detector
gnanirahulnutakki May 15, 2026
46f91e0
ci: add Phase A quality gates (coverage, RWT, examples, latency)
gnanirahulnutakki May 15, 2026
a58f1ef
feat(phase2): daemon Unix socket server with accept loop
gnanirahulnutakki May 15, 2026
d5fd1f7
ci: upload pytest coverage artifacts per Python version
gnanirahulnutakki May 15, 2026
c31f2a9
feat: implement MIC-State and MIC-Evidence conformance checks
gnanirahulnutakki May 15, 2026
6d8b3a4
feat(proxy): add TLS, kill-switch, rate limiting, biscuit auth, and m…
gnanirahulnutakki May 18, 2026
a483626
test: add coverage tests for log_rotation and backed_policy_store
gnanirahulnutakki May 18, 2026
e053b0a
test(e2e): add comprehensive end-to-end showcase test suite (28 tests…
gnanirahulnutakki May 20, 2026
647ed72
deps(docker)(deps): bump spiffe/spire-agent
dependabot[bot] May 25, 2026
e4a70e5
docs: reconcile MIC conformance claims after t_dcbf560b implementation
gnanirahulnutakki May 26, 2026
15ac7ea
dev → main: v0.1.0 governance hardening, e2e showcase, Phase 2 daemon
gnanirahulnutakki May 26, 2026
2e2dfcd
deps(docker)(deps): bump spiffe/spire-agent
dependabot[bot] May 26, 2026
0af18ee
deps(docker)(deps): bump python in /examples/autogen-quickstart
dependabot[bot] May 26, 2026
2841994
ci(deps): bump actions/setup-go from 5.5.0 to 6.4.0
dependabot[bot] May 26, 2026
f3ed14b
ci(deps): bump actions/cache from 4.3.0 to 5.0.5
dependabot[bot] May 26, 2026
ba3e7e9
ci(deps): bump actions/setup-python from 5.6.0 to 6.2.0
dependabot[bot] May 26, 2026
f93c998
ci(deps): bump actions/checkout from 4.3.1 to 6.0.2
dependabot[bot] May 26, 2026
4e28927
ci(deps): bump github/codeql-action from 3.35.2 to 4.36.0
dependabot[bot] May 26, 2026
2ad81c4
deps(docker)(deps): bump python in /examples/langchain-quickstart
dependabot[bot] May 26, 2026
75d9875
Merge pull request #29 from gnanirahulnutakki/dependabot/docker/examp…
gnanirahulnutakki May 26, 2026
465d1d5
Merge pull request #17 from gnanirahulnutakki/dependabot/go_modules/g…
gnanirahulnutakki May 26, 2026
d8f9b3e
Merge pull request #10 from gnanirahulnutakki/dependabot/docker/examp…
gnanirahulnutakki May 26, 2026
9b86620
Merge pull request #9 from gnanirahulnutakki/dependabot/docker/exampl…
gnanirahulnutakki May 26, 2026
51d9af9
Merge pull request #6 from gnanirahulnutakki/dependabot/github_action…
gnanirahulnutakki May 26, 2026
2b23dd6
Merge pull request #5 from gnanirahulnutakki/dependabot/github_action…
gnanirahulnutakki May 26, 2026
10254ac
Merge pull request #4 from gnanirahulnutakki/dependabot/github_action…
gnanirahulnutakki May 26, 2026
25ca28e
Merge pull request #3 from gnanirahulnutakki/dependabot/github_action…
gnanirahulnutakki May 26, 2026
3955b15
Merge pull request #2 from gnanirahulnutakki/dependabot/github_action…
gnanirahulnutakki May 26, 2026
5802dcd
deps(go): bump cedar-go from 1.5.2 to 1.6.0
gnanirahulnutakki May 26, 2026
759d37d
Merge branch 'main' into dev
gnanirahulnutakki May 26, 2026
8a2406e
Merge pull request #2 from ArdurAI/dependabot/github_actions/actions/…
gnanirahulnutakki May 26, 2026
2b314f7
Merge pull request #3 from ArdurAI/dependabot/github_actions/actions/…
gnanirahulnutakki May 26, 2026
37abb17
Merge pull request #4 from ArdurAI/dependabot/docker/examples/autogen…
gnanirahulnutakki May 26, 2026
11941d1
Merge pull request #5 from ArdurAI/dependabot/docker/examples/langcha…
gnanirahulnutakki May 26, 2026
3695a70
Merge pull request #6 from ArdurAI/dependabot/github_actions/actions/…
gnanirahulnutakki May 26, 2026
6d11fdf
Merge pull request #7 from ArdurAI/dependabot/github_actions/actions/…
gnanirahulnutakki May 26, 2026
9720470
Merge pull request #8 from ArdurAI/dependabot/go_modules/go/k8s.io/cl…
gnanirahulnutakki May 26, 2026
44530ba
Merge pull request #9 from ArdurAI/dependabot/go_modules/go/github.co…
gnanirahulnutakki May 26, 2026
a8c91c9
Merge pull request #11 from ArdurAI/dependabot/github_actions/github/…
gnanirahulnutakki May 26, 2026
dbcbcde
Merge pull request #16 from ArdurAI/dependabot/docker/examples/autoge…
gnanirahulnutakki May 26, 2026
aa8257e
deps(go): bump controller-runtime from 0.23.3 to 0.24.1
gnanirahulnutakki May 26, 2026
460414a
test(e2e): add comprehensive end-to-end showcase test suite (28 tests…
gnanirahulnutakki May 26, 2026
26ee8e4
Merge fork/dev into dev — bring all governance hardening, Phase 2 dae…
gnanirahulnutakki May 26, 2026
baca141
deps(go): bump controller-runtime from 0.24.0 to 0.24.1
gnanirahulnutakki May 26, 2026
7d7bc0a
feat: add content safety, OPA backend, MCP gateway, NIST RMF mapping,…
gnanirahulnutakki May 27, 2026
ee09555
docs: add guides and references for content safety, OPA backend, MCP …
gnanirahulnutakki May 27, 2026
0eebf5b
feat: add initial live adversarial scoreboard generator script (Prior…
gnanirahulnutakki May 28, 2026
7a70622
Add initial continuous adversarial harness script for live scoreboard…
gnanirahulnutakki May 28, 2026
e2d9bcf
feat: add live adversarial scoreboard - continuous harness and real-t…
gnanirahulnutakki May 28, 2026
3d2aa68
feat(gemini): align hook contract with CLI 0.44.1
gnanirahulnutakki May 30, 2026
bfbd613
docs(site): include generated reports source index
gnanirahulnutakki May 30, 2026
1d4a954
fix: hash Claude AskUserQuestion responses
gnanirahulnutakki Jun 1, 2026
ac36d56
fix(ci): repair baseline after AskUserQuestion landing
gnanirahulnutakki Jun 2, 2026
61884c3
security: redact internal-only surfaces and harden CI
gnanirahulnutakki Jun 3, 2026
689f548
docs: reconcile kernelcapture claim boundary
gnanirahulnutakki Jun 3, 2026
2096e7c
feat(kernelcapture): add daemon session registry
gnanirahulnutakki Jun 3, 2026
6bba3e1
feat(kernelcapture): add session handoff plan
gnanirahulnutakki Jun 3, 2026
7208706
feat(kernelcapture): expose active session handoff plan
gnanirahulnutakki Jun 3, 2026
a2f4de1
feat(kernelcapture): add session status snapshot
gnanirahulnutakki Jun 3, 2026
e4501be
feat(kernelcapture): retain daemon session status snapshots
gnanirahulnutakki Jun 3, 2026
707ee24
Add daemon status evidence-log plan seam
gnanirahulnutakki Jun 4, 2026
e0246dd
Fix CodeQL wrapper findings
gnanirahulnutakki Jun 4, 2026
b84d5b7
Clear remaining CodeQL notes
gnanirahulnutakki Jun 4, 2026
ddd1b2f
Harden proxy and clear security alerts
gnanirahulnutakki Jun 4, 2026
febdd8a
Remove remaining CodeQL high-alert shapes
gnanirahulnutakki Jun 4, 2026
d458836
Avoid hashing bearer token material
gnanirahulnutakki Jun 4, 2026
5641573
Clear remaining auth and CORS alerts
gnanirahulnutakki Jun 4, 2026
a28eb6e
Add in-memory daemon evidence log entries
gnanirahulnutakki Jun 5, 2026
d78b13b
Avoid evidence entry allocation overflow shape
gnanirahulnutakki Jun 5, 2026
216a9a6
Add in-memory evidence log append planner
gnanirahulnutakki Jun 5, 2026
2fe1397
Bound Python CI test runtime
gnanirahulnutakki Jun 5, 2026
3484b4d
Sync CI workflow site mirror
gnanirahulnutakki Jun 5, 2026
67f2958
Add injected evidence log filesystem appender
gnanirahulnutakki Jun 5, 2026
4c20897
Wire status snapshots to injected evidence log
gnanirahulnutakki Jun 5, 2026
b45f838
Clean up evidence-log state on end
gnanirahulnutakki Jun 8, 2026
384c0b9
test: cover shareable path redaction
gnanirahulnutakki Jun 9, 2026
21f36cf
fix: harden redaction and daemon session ownership
gnanirahulnutakki Jun 10, 2026
1843a2b
fix: harden personal hub token comparison
gnanirahulnutakki Jun 11, 2026
f7ebc02
feat: add no-key provider adapter fixtures
gnanirahulnutakki Jun 11, 2026
64aa177
fix: harden daemon session status authorization
gnanirahulnutakki Jun 12, 2026
d4f4e26
docs: align adapter fixture public claims
gnanirahulnutakki Jun 12, 2026
ef4bcf4
fix: harden personal hub state writes
gnanirahulnutakki Jun 13, 2026
15940e8
fix: require cgroup id for daemon sessions
gnanirahulnutakki Jun 14, 2026
551afe3
feat: add Claude project-context fixture coverage
gnanirahulnutakki Jun 15, 2026
5f11d22
fix: harden personal hub atomic state writes
gnanirahulnutakki Jun 16, 2026
0bda5e5
test: avoid permissive open-mode helper
gnanirahulnutakki Jun 16, 2026
2b62032
fix: add Claude Code doctor remediation hints
gnanirahulnutakki Jun 16, 2026
b4c4aff
feat: guide empty Claude Code report output
gnanirahulnutakki Jun 16, 2026
8bb0c8b
docs: add host report next steps
gnanirahulnutakki Jun 16, 2026
0384b95
feat: add posture scan next steps
gnanirahulnutakki Jun 16, 2026
4a4b702
Improve doctor setup next steps
gnanirahulnutakki Jun 17, 2026
a28470c
feat(personal): add status next steps
gnanirahulnutakki Jun 17, 2026
9cd7634
Improve ardur run setup recovery guidance
gnanirahulnutakki Jun 17, 2026
af2862b
docs: use placeholder in Personal Hub status example
gnanirahulnutakki Jun 17, 2026
ce68bd3
docs: normalize bearer placeholder examples
gnanirahulnutakki Jun 17, 2026
974b05d
Improve claude-code protect missing-scope guidance
gnanirahulnutakki Jun 17, 2026
1ab3c76
docs: align Claude Code get-started protect snippet
gnanirahulnutakki Jun 17, 2026
89fcfd9
docs: add host source semantic vector fixtures
gnanirahulnutakki Jun 17, 2026
0fc059b
fix: add desktop observe hub recovery hints
gnanirahulnutakki Jun 17, 2026
9f24ab7
Improve personal native host recovery guidance
gnanirahulnutakki Jun 17, 2026
b161140
docs: document native host recovery hints
gnanirahulnutakki Jun 17, 2026
94b46c6
fix: add kill-switch recovery hints
gnanirahulnutakki Jun 18, 2026
8eaff67
fix: add profile init recovery hints
gnanirahulnutakki Jun 18, 2026
7b6a80d
docs: document profile init recovery guidance
gnanirahulnutakki Jun 18, 2026
dcbe219
fix: narrow cleanup exception handling
gnanirahulnutakki Jun 18, 2026
d20beb8
feat: add uninstall dry-run preview
gnanirahulnutakki Jun 18, 2026
c80425b
docs: document desktop-observe recovery hints
gnanirahulnutakki Jun 18, 2026
0777c43
fix: add verify and attest failure JSON
gnanirahulnutakki Jun 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 50 additions & 15 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,17 +1,52 @@
.git
__pycache__
*.pyc
*.pyo
.pytest_cache
.ruff_cache
.mypy_cache
site/
media/
reports/
tooling/
*.egg-info
.venv
# Dockerignore for Ardur builds

# Python
__pycache__/
*.py[cod]
*.egg-info/
.venv/
venv/
dist/
build/
*.egg

# Go
go/bin/
go/pkg/mod/

# Git
.git/
.gitignore
.gitattributes

# CI/CD
.github/

# IDE
.vscode/
.idea/
*.swp
*.swo

# Agent state (local-only)
.ardur/
.vibap/
.context/
.agents/
.ai-context/
.agent-context/
.codex/
.claude/
.local-skills/

# Tests
.pytest_cache/
.coverage
htmlcov/
python/tests/test-results/

# Misc
node_modules/
*.log
*.jsonl
*.jsonl.gz
.env
.env.*
10 changes: 5 additions & 5 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
outputs:
languages: ${{ steps.detect.outputs.languages }}
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- id: detect
name: Detect supported languages present in the tree
Expand Down Expand Up @@ -62,13 +62,13 @@ jobs:
matrix:
language: ${{ fromJSON(needs.detect-languages.outputs.languages) }}
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

# v3 is an annotated tag (tag-object 865f5f5c... → commit ce64ddcb...).
# Pin to the commit SHA per the same discipline as the other
# workflows; comment shows the human-readable version.
- name: Initialize CodeQL
uses: github/codeql-action/init@ce64ddcb0d8d890d2df4a9d1c04ff297367dea2a # v3 (commit)
uses: github/codeql-action/init@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v3 (commit)
with:
languages: ${{ matrix.language }}
# `security-and-quality` is the broadest pack — covers
Expand All @@ -79,9 +79,9 @@ jobs:
queries: security-and-quality

- name: Autobuild
uses: github/codeql-action/autobuild@ce64ddcb0d8d890d2df4a9d1c04ff297367dea2a # v3 (commit)
uses: github/codeql-action/autobuild@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v3 (commit)

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@ce64ddcb0d8d890d2df4a9d1c04ff297367dea2a # v3 (commit)
uses: github/codeql-action/analyze@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v3 (commit)
with:
category: "/language:${{ matrix.language }}"
2 changes: 1 addition & 1 deletion .github/workflows/hugo-site.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
HUGO_VERSION: 0.161.1
HUGO_PARAMS_SOURCEREF: ${{ github.sha }}
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Verify source-backed Hugo mirrors
run: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/link-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ jobs:
lychee:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Restore lychee cache
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: .lycheecache
key: cache-lychee-${{ github.sha }}
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/secret-scan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
local-agent-private-paths:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Ensure local-only agent and skill paths are not tracked
run: |
Expand All @@ -31,7 +31,7 @@ jobs:
gitleaks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0

Expand All @@ -43,7 +43,7 @@ jobs:
forbidden-terms:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Scan for forbidden internal terms
run: |
Expand All @@ -68,7 +68,7 @@ jobs:
llm-model-names:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Scan for specific LLM model identifiers
run: |
Expand Down
169 changes: 161 additions & 8 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,61 @@ permissions:
contents: read

jobs:
python-lint:
name: Python lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: "3.13"

- name: Install ruff
run: python -m pip install ruff==0.13.0

- name: Run ruff check on new hardening tests
run: |
python -m ruff check \
python/tests/test_proxy.py \
python/tests/test_examples_governance_integration.py

go-lint:
name: Go lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Set up Go
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
# Must match the `go` directive in go/go.mod (currently 1.26.0).
go-version: '1.26.0'
cache: true
cache-dependency-path: go/go.sum

- name: Install golangci-lint with Go 1.26
working-directory: go
run: go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.5.0

- name: Run golangci-lint on hardening packages
working-directory: go
run: $(go env GOPATH)/bin/golangci-lint run ./pkg/credential ./pkg/policy

python:
name: Python
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.13"]
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Set up Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}

Expand All @@ -32,22 +75,40 @@ jobs:
python -m pip install --upgrade pip
python -m pip install -e '.[dev]'

- name: Run pytest
- name: Run pytest with coverage
working-directory: python
timeout-minutes: 15
env:
PYTHONFAULTHANDLER: "1"
run: python -m pytest tests/ -q --tb=short --durations=20 --cov=vibap --cov-report=term --cov-report=xml

- name: Show coverage summary
working-directory: python
run: python -m pytest tests/ -q --tb=short
run: |
python -m coverage report --fail-under=0
echo "::notice:: Aspirational targets: vibap=80%%, cli=60%%, integrations=70%%"

- name: Upload coverage artifact
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: python-coverage-${{ matrix.python-version }}
path: python/coverage.xml
if-no-files-found: warn
retention-days: 14

go:
name: Go
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Set up Go
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
# Must match the `go` directive in go/go.mod (currently 1.25.9).
# Must match the `go` directive in go/go.mod (currently 1.26.0).
# If you bump go.mod, bump this string in the same PR.
go-version: '1.25.9'
go-version: '1.26.0'
cache: true
cache-dependency-path: go/go.sum

Expand All @@ -58,3 +119,95 @@ jobs:
- name: Run go vet
working-directory: go
run: go vet ./...

rwt-phase1:
name: "RWT Phase 1 (fresh-user)"
runs-on: ubuntu-latest
timeout-minutes: 10
permissions:
contents: read
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0

- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: "3.13"

- name: Run RWT Phase 1
run: python scripts/run-rwt-phase1-fresh-user.py --allow-dirty

examples-smoke:
name: "Examples smoke"
runs-on: ubuntu-latest
timeout-minutes: 15
permissions:
contents: read
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: "3.13"

- name: Install ardur
working-directory: python
run: python -m pip install -e '.[dev]'

- name: Install langchain-core for governed-tool integration tests
run: python -m pip install langchain-core

- name: Run governance integration tests (demo code paths)
working-directory: python
run: python -m pytest tests/test_examples_governance_integration.py tests/test_examples_smoke.py -v --tb=short

latency-bench:
name: "Latency benchmarks (informational)"
runs-on: ubuntu-latest
timeout-minutes: 10
permissions:
contents: read
continue-on-error: true
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: "3.13"

- name: Install ardur
working-directory: python
run: python -m pip install -e '.[dev]'

- name: Run latency benchmarks
working-directory: python
env:
ARDUR_RUN_LATENCY_BENCH: "1"
run: python -m pytest tests/test_claude_code_hook_latency.py -v -s

e2e-showcase:
name: "E2E Showcase (real Ollama)"
runs-on: ubuntu-latest
timeout-minutes: 15
permissions:
contents: read
continue-on-error: true
if: github.event_name == 'workflow_dispatch' || github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: "3.13"

- name: Install ardur with dev extras
working-directory: python
run: python -m pip install -e '.[dev]'

- name: Run E2E showcase
working-directory: python
env:
ARDUR_OLLAMA_API_KEY: ${{ secrets.ARDUR_OLLAMA_API_KEY }}
ARDUR_OLLAMA_CLOUD_MODEL: ${{ vars.ARDUR_OLLAMA_CLOUD_MODEL }}
run: python -m pytest tests/test_e2e_showcase.py -v -s --tb=short
6 changes: 3 additions & 3 deletions .github/workflows/validate-formats.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
name: JSON
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Validate every JSON file
run: |
Expand All @@ -41,7 +41,7 @@ jobs:
name: YAML
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Validate every YAML file
run: |
Expand Down Expand Up @@ -75,7 +75,7 @@ jobs:
# on any drift.
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Compare every embedded schema to its canonical doc
# Round 4 (FIX-R4-10, 2026-04-28): generalized from a single
Expand Down
Loading
Loading