Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
333 commits
Select commit Hold shift + click to select a range
5236775
feat: Phase 69 — Operational Insights & Governance (FJ-813→FJ-820, 23…
noahgift Feb 28, 2026
6d02e59
docs: Mark Phase 69 Done, define Phase 70 (FJ-821→FJ-828), update book
noahgift Feb 28, 2026
1ff3ca7
feat: Phase 70 — Advanced Governance & Analytics (FJ-821→FJ-828, 2373…
noahgift Feb 28, 2026
122fb81
docs: Mark Phase 70 Done, define Phase 71 (FJ-829→FJ-836), update book
noahgift Feb 28, 2026
e0e2edd
feat: Phase 71 — FJ-829→FJ-836 naming patterns, apply history, critic…
noahgift Feb 28, 2026
26a2967
docs: Phase 71 Done, define Phase 72, book examples (FJ-829→FJ-836)
noahgift Feb 28, 2026
e0f850f
feat: Phase 72 — FJ-837→FJ-844 secret refs, coupling scores, converge…
noahgift Feb 28, 2026
b2b217b
docs: Phase 72 Done, define Phase 73, book examples (FJ-837→FJ-844)
noahgift Feb 28, 2026
afbe1a4
feat: Phase 73 — Drift Intelligence & Governance (FJ-845→FJ-852)
noahgift Feb 28, 2026
a977ccd
docs: Phase 73 Done (FJ-845→FJ-852), define Phase 74, book examples
noahgift Feb 28, 2026
377161c
feat: Phase 74 — Predictive Analysis & Fleet Governance (FJ-853→FJ-860)
noahgift Feb 28, 2026
a13cdcb
docs: Phase 74 Done (FJ-853→FJ-860), define Phase 75, book examples
noahgift Feb 28, 2026
2300a8a
feat: Phase 75 Done (FJ-861→FJ-868), define Phase 76, book examples
noahgift Feb 28, 2026
e76c6de
feat: Phase 76 Done (FJ-869→FJ-876), define Phase 77, book examples
noahgift Feb 28, 2026
7827d01
feat: Phase 77 Done (FJ-877→FJ-884), define Phase 78, book examples
noahgift Feb 28, 2026
7387659
feat: Phase 78 Done (FJ-885→FJ-892), define Phase 79, book examples
noahgift Feb 28, 2026
6d22ea5
feat: Phase 79 Done (FJ-893→FJ-900), define Phase 80, book examples
noahgift Feb 28, 2026
46ea628
feat: Phase 80 Done (FJ-901→FJ-908), define Phase 81, book examples
noahgift Feb 28, 2026
458b3a0
feat: Phase 81 Done (FJ-909→FJ-916), define Phase 82, book examples
noahgift Feb 28, 2026
fa1d58e
feat: Phase 82 Done (FJ-917→FJ-924), define Phase 83, book examples
noahgift Feb 28, 2026
636c7aa
feat: Phase 83 Done (FJ-925→FJ-932), define Phase 84, book examples
noahgift Feb 28, 2026
ae048d4
feat: Phase 84 Done (FJ-933→FJ-940), define Phase 85, book examples
noahgift Feb 28, 2026
19d381d
feat: Phase 85 Done (FJ-941→FJ-948), define Phase 86, book examples
noahgift Feb 28, 2026
bec242c
feat: Phase 86 Done (FJ-949→FJ-956), define Phase 87, book examples
noahgift Feb 28, 2026
748bc5f
fix: resolve all 510 clippy warnings (0 remaining)
noahgift Feb 28, 2026
bf2b82b
feat: Phase 87 Done (FJ-957→FJ-964), define Phase 88, book examples
noahgift Feb 28, 2026
3f7e97a
feat: Phase 88 — Drift Velocity, Trigger Refs & Topological Depth (FJ…
noahgift Feb 28, 2026
82f2c5e
feat: Phase 89 — Dependency Visualization & Fleet Health Scoring (FJ-…
noahgift Feb 28, 2026
8f0e405
feat: Phase 90 — Resource Lifecycle & Dependency Resilience (FJ-981→F…
noahgift Feb 28, 2026
ab30932
feat: Phase 91 — Advanced Governance & Operational Depth (FJ-989→FJ-996)
noahgift Feb 28, 2026
f9249fd
feat: Phase 92 — Fleet Observability & Dependency Topology (FJ-997→FJ…
noahgift Feb 28, 2026
07181a4
docs: add sovereign-ai-cookbook section to book cookbook chapter
noahgift Feb 28, 2026
ce0059a
feat: FJ-1005 — Multi-vendor GPU resource handler (nvidia/rocm/cpu)
noahgift Feb 28, 2026
bc0b9a1
fix: resolve {{inputs.*}} templates in all Resource string fields
noahgift Feb 28, 2026
6d55293
fix: bootstrap rustup in cargo provider when cargo is missing (FJ-1005)
noahgift Feb 28, 2026
f41604f
fix: add build-essential to test-target for cargo install (FJ-1005)
noahgift Feb 28, 2026
129d7cb
fix: resolve {{inputs.*}} templates in when field (FJ-1005)
noahgift Feb 28, 2026
ee2d77e
fix: use 16 MiB stack for all completion tests (bash/fish)
Feb 28, 2026
b55e69f
docs: Phase 93 — Multi-Vendor GPU spec, book, and examples (FJ-1005→F…
noahgift Feb 28, 2026
e81193e
feat: Phase 94 — Resource Profiling & Security Posture (FJ-1013→FJ-1020)
noahgift Feb 28, 2026
7e9062d
test: close coverage gap to 95.30% with 4920 tests (was 85%)
noahgift Feb 28, 2026
9fe6a78
feat: Phase 95 — Operational Resilience & Runtime Diagnostics (FJ-102…
noahgift Feb 28, 2026
91d9f77
fix: resolve {{inputs.*}} in Vec<String> fields (ports, environment, …
Feb 28, 2026
af4e68e
feat: Phase 96 — Transport Diagnostics & Recipe Governance (FJ-1029→F…
noahgift Feb 28, 2026
d99a996
feat: Phase 97 — State Analytics & Capacity Planning (FJ-1037→FJ-1044)
noahgift Feb 28, 2026
4c4298e
feat: Phase 98 — Compliance Automation & Drift Intelligence (FJ-1045→…
noahgift Feb 28, 2026
2809de3
feat: Phase 99 — Security Posture & Resource Lifecycle (FJ-1053→FJ-1060)
noahgift Feb 28, 2026
441aec5
feat: Phase 100 — Operational Intelligence & Graph Health (FJ-1061→FJ…
noahgift Feb 28, 2026
2fb55b7
feat: Phase 101 — Fleet Insight & Dependency Quality (FJ-1069→FJ-1076)
noahgift Feb 28, 2026
7cb270f
feat: Phase 102 — Resource Intelligence & Topology Insight (FJ-1077→F…
noahgift Mar 1, 2026
e80184e
feat: Phase 103 — Fleet Analytics & Configuration Quality (FJ-1085→FJ…
noahgift Mar 1, 2026
1a7cf38
feat: add volumes field to ContainerConfig for Docker socket mounting
Mar 1, 2026
e00abad
feat: Phase 104 — Operational Maturity & Dependency Governance (FJ-10…
noahgift Mar 1, 2026
01384a0
feat: Phase 105 — Fleet Resilience & Configuration Hygiene (FJ-1101→F…
noahgift Mar 1, 2026
8544ea1
fix: add Docker CLI to test-target image for observability stacks
Mar 1, 2026
433e62b
feat: Phase 106 — Dependency Intelligence & Fleet Configuration (FJ-1…
noahgift Mar 1, 2026
d1c5ca5
fix: add ufw to test-target image for network/firewall resources
Mar 1, 2026
b6d32e6
feat: Phase 107 — Resource Quality Scoring & Fleet Drift Analytics (F…
noahgift Mar 1, 2026
2af9200
fix: limit cargo install parallelism to avoid OOM (FJ-1008)
Mar 1, 2026
ea15331
feat: Forjar Score CLI + Cookbook Specification
noahgift Mar 1, 2026
0e68f4d
feat: add Phase 1+2 cookbook recipes (01-10) with validate+score
noahgift Mar 1, 2026
634211e
feat: add score_cookbook example + make score_bar public
noahgift Mar 1, 2026
d2f8554
test: add scoring edge case coverage + score_cookbook example
noahgift Mar 1, 2026
2de6e65
docs: add Forjar Score to cookbook chapter + CLI reference
noahgift Mar 1, 2026
249ac27
feat: cookbook recipes 40-44 (Linux admin: cron, users, sysctl, logs,…
noahgift Mar 1, 2026
2ff7d93
feat: cookbook recipes 45-49 (systemd, limits, patching, hostname, swap)
noahgift Mar 1, 2026
862d05d
feat: cookbook recipes 12, 16-17, 22-24 (toolchain, rust builds, secr…
noahgift Mar 1, 2026
961f52f
docs: cookbook recipe index + fix clippy map_or in score_cookbook
noahgift Mar 1, 2026
8a3dbfc
feat: cookbook recipes 25-29 (APT repos, deb build, private repo, RPM…
noahgift Mar 1, 2026
b609039
feat: cookbook recipes 19-21 (cross-compile, sovereign stack, APR model)
noahgift Mar 1, 2026
a8b4330
feat: cookbook recipes 11, 13-15 (Nix-style: dev shell, sandbox, prof…
noahgift Mar 1, 2026
7c2324d
docs: update cookbook recipe index to 38 recipes across 7 phases
noahgift Mar 1, 2026
ac60c5d
feat: Phase 8 — OpenTofu patterns: checks, lifecycle, moved, forjar-s…
noahgift Mar 1, 2026
96339b5
docs: update cookbook recipe index to 48 recipes with OpenTofu phase
noahgift Mar 1, 2026
cbea9f3
feat: failure mode tests + composability stacks — recipes 50-57
noahgift Mar 1, 2026
9fc3a48
feat: composability stacks — recipes 58-62 (ML inference, CI, soverei…
noahgift Mar 1, 2026
2dfc63b
feat: enforce Phase 8 runtime — lifecycle, moved blocks, post-apply c…
noahgift Mar 1, 2026
12c8b40
feat: implement --refresh-only and --encrypt-state CLI flags (FJ-1230…
noahgift Mar 1, 2026
84890c1
feat: saved plan files — plan --out + apply --plan-file (FJ-1250)
noahgift Mar 1, 2026
3b9ec69
feat: cross-config data source reads outputs from state lock (FJ-1260)
noahgift Mar 1, 2026
967ebc9
feat: wire --encrypt-state with age encryption/decryption (FJ-1240)
noahgift Mar 1, 2026
966d7ed
feat: cargo provider supports source field for local --path installs
Mar 1, 2026
6ff7419
feat: sub-recipe expansion with cycle detection in expand_recipes
Mar 1, 2026
bca80ac
docs: update cookbook spec — worked example reflects A-grade, fix OBS…
noahgift Mar 1, 2026
8a27e57
fix: make resources field optional in ForjarConfig for include files
noahgift Mar 1, 2026
29ddc01
docs: update cookbook spec — 62 recipes, composition stacks A-grade
noahgift Mar 1, 2026
d14e633
feat: add task resource type for pipeline orchestration (ALB-027)
noahgift Mar 1, 2026
37ab342
docs: collapse implementation priority — all 9 phases complete
noahgift Mar 1, 2026
f765ffa
docs: add score CLI, update dashboard example, scoring in qual cycle
noahgift Mar 1, 2026
c8ea398
docs: document OBS full credit for recipes without file resources
noahgift Mar 1, 2026
016659d
fix: add cargo bin to PATH in model resource apply script
Mar 1, 2026
85e6d6e
docs: add score/score-recipe Make targets to spec
noahgift Mar 1, 2026
e35e697
docs: align spec CI workflow with actual ci.yml
noahgift Mar 1, 2026
bb0bf2a
fix: resolve 1005 clippy --all-targets errors in test files
noahgift Mar 1, 2026
fb6a0d1
docs: fix stale markers in cookbook spec
noahgift Mar 1, 2026
302125b
docs: fix stale 'Should Adopt' heading in OpenTofu section
noahgift Mar 1, 2026
5252faf
feat: resolve recipe-to-recipe depends_on via terminal resource map
Mar 1, 2026
0138a72
refactor: split 27 test files to enforce 500-line limit
noahgift Mar 1, 2026
62746b9
refactor: split tests_container.rs (505→467) into _d file
noahgift Mar 1, 2026
a3e3b4c
docs: update spec to reflect recipe #18 implementation status
noahgift Mar 1, 2026
45654da
docs: fix dashboard counts and recipe #18 testability tier
noahgift Mar 1, 2026
9c9b726
docs: update spec — 57 of 62 recipes now A-grade
noahgift Mar 1, 2026
016a70c
fix: remove --output flag from apr pull in model resource handler
Mar 1, 2026
377a1eb
fix: GPU apply_script checks driver presence before installing (PMAT-…
Mar 2, 2026
a46ec91
fix: has_encrypted_markers validates base64 content, not just prefix …
Mar 2, 2026
2d1e547
fix: network resource guards ufw availability in containers (PMAT-038)
Mar 2, 2026
44a19a4
fix: resolve GPU fields (driver_version, cuda_version, etc.) in templ…
Mar 2, 2026
98acd40
docs: add nix-compatible reproducible package manager spec (FJ-1300)
noahgift Mar 2, 2026
41e5a10
docs: add Nix import and FAR archive format to reproducible spec (FJ-…
noahgift Mar 2, 2026
b9a409e
docs: falsify spec — enforce zero new crates, sovereign Nix bootstrap…
noahgift Mar 2, 2026
c2631e8
docs: correct Nix role — optional provider, not bootstrap dependency
noahgift Mar 2, 2026
a6accac
docs: add store derivations and universal provider import (FJ-1341–FJ…
noahgift Mar 2, 2026
97ffc75
docs: add data provenance, upstream diff/sync, MLOps integration (FJ-…
noahgift Mar 2, 2026
24058bc
docs: falsify spec claims and add 21 arXiv citations (FJ-1300)
noahgift Mar 2, 2026
ab4cb04
feat: content-addressed store path derivation (FJ-1300)
noahgift Mar 2, 2026
1b75853
feat: store metadata with provenance tracking (FJ-1301)
noahgift Mar 2, 2026
2ffb94b
feat: profile generation management with atomic rollback (FJ-1302)
noahgift Mar 2, 2026
2b98a35
feat: FAR binary format encoder/decoder (FJ-1346)
noahgift Mar 2, 2026
1e99f5e
feat: fixed-size chunker with BLAKE3 Merkle tree hashing (FJ-1347)
noahgift Mar 2, 2026
414b57d
feat: Conda package reader for .conda and .tar.bz2 formats (FJ-1348)
noahgift Mar 2, 2026
31d7f0f
feat: Conda → FAR conversion pipeline (FJ-1349)
noahgift Mar 2, 2026
c76c15a
feat: conda_to_far example + extraction fix (FJ-1349)
noahgift Mar 2, 2026
550c8c6
feat: HF config reader + architecture-to-kernel mapping (FJ-1350)
noahgift Mar 2, 2026
ba1ca79
feat: contract coverage checker for kernel onboarding (FJ-1351)
noahgift Mar 2, 2026
24f2675
feat: contract YAML scaffolder for missing kernels (FJ-1352)
noahgift Mar 2, 2026
53eea1f
feat: kernel contract FAR packaging + onboard pipeline (FJ-1353)
noahgift Mar 2, 2026
5626022
feat: reference scanning + purity classification (Refs PMAT-001, Refs…
noahgift Mar 2, 2026
5057568
feat: input closure tracking + lock file format (Refs PMAT-003, Refs …
noahgift Mar 2, 2026
e4f3f85
feat: GC roots and mark-and-sweep garbage collection (Refs PMAT-005)
noahgift Mar 2, 2026
cbac9d2
feat: reproducibility score + store example (Refs PMAT-006)
noahgift Mar 2, 2026
0269b92
docs: add store model section to architecture book chapter (Refs PMAT…
noahgift Mar 2, 2026
120b3ca
feat: sandbox config + binary cache substitution protocol (FJ-1315, F…
noahgift Mar 2, 2026
e75d2ac
feat: universal provider import + store derivation model (FJ-1333, FJ…
noahgift Mar 2, 2026
791c8da
docs: update example + book with sandbox, cache, provider, derivation…
noahgift Mar 2, 2026
5e8835e
feat: upstream diff/sync + recipe conversion strategy (FJ-1345, FJ-1328)
noahgift Mar 2, 2026
cb85751
feat: tripwire pin integration + validation commands (FJ-1314, FJ-1306)
noahgift Mar 2, 2026
47e3bdc
docs: extend example to 14 demos + book updates for diff/sync/convert…
noahgift Mar 2, 2026
509c528
docs: link to cookbook repo + update test count in README
noahgift Mar 2, 2026
7b02bb5
feat: store CLI commands — pin, cache, store, archive, convert (FJ-13…
noahgift Mar 2, 2026
5a524a0
docs: extend example to 16 demos + book updates for store CLI
noahgift Mar 2, 2026
6b2bdea
feat: store-import CLI — universal provider import (FJ-1333)
noahgift Mar 2, 2026
122b15f
feat: sandbox, substitution, and derivation executors (FJ-1316, FJ-13…
noahgift Mar 2, 2026
dda99b8
docs: store_executors example + architecture book updates
noahgift Mar 2, 2026
a2e9d2a
docs: add store section and cookbook link to README
noahgift Mar 2, 2026
68b88e2
docs: mdbook publishing + true up all links and examples README
noahgift Mar 2, 2026
9e7dad2
fix: use versioned mdbook release URL in book workflow
noahgift Mar 2, 2026
e13a54d
fix: cargo fmt + book workflow trigger on yml changes
noahgift Mar 2, 2026
a6aede4
style: cargo fmt + split oversized files
noahgift Mar 2, 2026
8ccead2
docs: restructure store spec into per-phase files with TOC + status (…
noahgift Mar 2, 2026
439cbab
feat: add store Criterion benchmarks + auto-update README table (Refs…
noahgift Mar 2, 2026
9ae23d9
feat: add secret scanning framework with 15 regex patterns (Refs FJ-1…
noahgift Mar 2, 2026
d64e5d2
feat: enforce I8 bash provability at all exec entry points (Refs FJ-1…
noahgift Mar 2, 2026
a4da3bb
docs: expand Phase L execution layer spec with 7 ticket details (Refs…
noahgift Mar 2, 2026
9c45aba
feat: add provider execution bridge with staging lifecycle (Refs FJ-1…
noahgift Mar 2, 2026
6a20242
feat: add GC sweep execution with journal and path traversal guard (R…
noahgift Mar 2, 2026
e9d4fe8
feat: add pin resolution execution with provider CLI parsing (Refs FJ…
noahgift Mar 2, 2026
acc2eb4
feat: add cache SSH execution with pull/push and substitution I/O (Re…
noahgift Mar 2, 2026
b42944b
feat: add convert --apply execution with YAML modification (Refs FJ-1…
noahgift Mar 2, 2026
cd71cbe
feat: add store diff/sync execution with upstream re-invocation (Refs…
noahgift Mar 2, 2026
fd0c5a5
feat: add sandbox execution bridge, book chapter 12, and examples (Re…
noahgift Mar 2, 2026
8443330
fix: add store/script fields to examples, update Phase L spec status …
noahgift Mar 2, 2026
5e3b1b1
feat: wire store CLI commands to execution bridges (Refs FJ-1367)
noahgift Mar 2, 2026
4c598c3
feat: add store execution examples for GC, pin, and cache (Refs FJ-1368)
noahgift Mar 2, 2026
9086978
docs: expand store book chapter with execution layer and CLI examples…
noahgift Mar 2, 2026
f694892
test: add CLI tests for execution bridge wiring (Refs FJ-1370)
noahgift Mar 2, 2026
6c9c776
feat: wire cache pull --source to cache_exec transport layer (Refs FJ…
noahgift Mar 2, 2026
2db2218
feat: propagate provider to ResourceConversion, use pin_hash for lock…
noahgift Mar 2, 2026
9b36218
docs: mark all 12 store phases complete — types + execution + CLI (Re…
noahgift Mar 2, 2026
9b85979
feat: wire --check-recipe-purity and --check-reproducibility-score to…
noahgift Mar 2, 2026
1dac4dc
feat: implement BLAKE3 verification in cache pull instead of stub (Re…
noahgift Mar 2, 2026
927045f
feat: wire derivation DAG execution to sandbox_run for cache misses (…
noahgift Mar 2, 2026
63a84a8
fix: handle sandbox unavailability gracefully in store_executors exam…
noahgift Mar 2, 2026
ecef97d
docs: update phase E/F/H specs — mark remaining work as complete (Ref…
noahgift Mar 2, 2026
6401c64
docs: fix broken internal links in book chapter 12-store.md (Refs FJ-…
noahgift Mar 2, 2026
2c26185
test: add 37 coverage tests for validate_analytics, provider_exec, sy…
noahgift Mar 2, 2026
9b61a7b
test: add 16 coverage tests for dispatch_store routing and rollback_c…
noahgift Mar 2, 2026
42f923e
test: add 46 coverage tests for fleet_ops, apply_variants, and store …
noahgift Mar 2, 2026
5bd7b59
test: add 34 dispatch_misc routing coverage tests (Refs FJ-1372)
noahgift Mar 2, 2026
6ef021d
test: add 59 coverage tests for show, lint, validate_policy, store CL…
noahgift Mar 2, 2026
958b2db
test: add 60 coverage tests for validate_safety, validate_advanced, v…
noahgift Mar 2, 2026
1fc35bc
fix: parse apr pull output for cached model path instead of non-exist…
Mar 2, 2026
46b20bc
fix: replace curl|sh rustup install with download-then-execute (PMAT-…
Mar 2, 2026
50ef12f
test: add 126 coverage tests for 14 untested validate modules (Refs F…
noahgift Mar 2, 2026
20a6344
test: add 24 error-path tests for validate modules to push past 95% (…
noahgift Mar 2, 2026
2611c9d
test: add 23 deeper coverage tests with package resource configs (Ref…
noahgift Mar 2, 2026
20cacd0
fix: strip ANSI escape codes from apr pull output before parsing Path…
Mar 2, 2026
aa4f0d4
fix: trim test files under 500 lines, add per-arm parse_provider test…
noahgift Mar 2, 2026
1ec7668
fix: resolve clippy lint warnings in examples, benches, and tests (Re…
noahgift Mar 2, 2026
797bebe
chore: update pmat metadata, deps, and roadmap tracking files (Refs F…
noahgift Mar 2, 2026
b2cafb9
chore: add state and cargo config directories (Refs FJ-1372)
noahgift Mar 2, 2026
f4a4cf1
chore: add deny/lint caches and pmat metadata (Refs FJ-1372)
noahgift Mar 2, 2026
9d96a5e
test: add explicit per-arm match variant tests for package.rs apply_s…
noahgift Mar 2, 2026
b49ff3d
chore: refresh lint cache after test additions (Refs FJ-1372)
noahgift Mar 2, 2026
ec72a1c
chore: refresh pmat context index (Refs FJ-1372)
noahgift Mar 2, 2026
6dc1d4c
chore: mark PMAT-027/028 complete, update roadmap (Refs FJ-1372)
noahgift Mar 2, 2026
dfbe5a1
feat: add 122 spec falsification tests covering all 12 phases (Refs F…
noahgift Mar 2, 2026
5048fe8
chore: update pmat metadata and state files (Refs PMAT-030)
noahgift Mar 2, 2026
63f5166
chore: commit pmat rescue receipts (Refs PMAT-030)
noahgift Mar 2, 2026
d74f446
feat: add 82 gap-filling spec falsification tests (204 total) (Refs F…
noahgift Mar 3, 2026
47b50eb
feat: add 4 store examples (FAR, secrets, I8, benchmarks) + book upda…
noahgift Mar 3, 2026
5b71e06
feat: add GPU training dogfood recipe for heterogeneous distributed t…
noahgift Mar 3, 2026
3463f85
feat: expand {{item}}/{{index}} in task fields + resolve {{params}} i…
noahgift Mar 3, 2026
bf6413e
fix: replace $SUDO apt-get with if/else to avoid bashrs SEC002
Mar 3, 2026
00166a2
fix: wrap timeout commands in bash -c for multi-line support (Refs AL…
noahgift Mar 3, 2026
045cdc4
fix: use heredoc for timeout command wrapping (Refs ALB-027)
noahgift Mar 3, 2026
a6d1633
feat: split all oversized source files under 500-line limit (Refs PMA…
noahgift Mar 3, 2026
6b28f75
fix: use 8MB stack for dispatch_completion_routes test
Mar 3, 2026
0ecdfac
chore: split 3 oversized files under 500 lines (Refs PMAT-031)
noahgift Mar 3, 2026
04a561f
feat: FJ-1373: Store FAR archive example + book section (Refs PMAT-031)
noahgift Mar 3, 2026
32f9695
feat: FJ-1374: Store secret scan example + book section (Refs PMAT-032)
noahgift Mar 3, 2026
de1bec5
feat: FJ-1375: Store bash provability example + book section (Refs PM…
noahgift Mar 3, 2026
942a1d2
feat: FJ-1376: Store benchmarks example + cookbook update (Refs PMAT-…
noahgift Mar 3, 2026
e2c7332
chore: bump version to 1.1.0 for crates.io release (Refs FJ-1376)
noahgift Mar 3, 2026
d1ca99a
chore: add panic=abort to release profile, fix state/ exclude pattern…
noahgift Mar 3, 2026
fdf9479
fix: bashrs 6.65 compat — replace unicode dashes, bump MSRV to 1.88 (…
noahgift Mar 3, 2026
9b951cd
ci: add clean-room gate CI + release workflows
noahgift Mar 3, 2026
c29dc7b
ci: use @main ref for reusable workflow (testing cross-repo gate)
Mar 3, 2026
fbc1f46
feat: FJ-1377: v2 spec features — output persistence, integrity, stal…
noahgift Mar 3, 2026
da25810
feat: FJ-1382: drift gate, --why, budget, snapshots, reversibility, c…
noahgift Mar 3, 2026
6b62c77
docs: update v2 spec scorecard 87→96 — mark 12 features implemented (…
noahgift Mar 3, 2026
02bd3b8
ci: update release.yml — @main ref + pinned crates-io-auth-action
Mar 3, 2026
b2fba1b
ci: add Dependabot config for actions SHA updates
noahgift Mar 3, 2026
27448a0
feat: FJ-1384: stack extraction, proof taxonomy, chain hashing (Refs …
noahgift Mar 3, 2026
97fe559
feat: FJ-1386: generational snapshots, compliance framework, proptest…
noahgift Mar 3, 2026
83a1707
feat: FJ-1389+1390+1391: stack diff, security scanner, policy gates, …
noahgift Mar 3, 2026
a189940
docs: update v2 spec scorecard — mark #18, #19, #62 as implemented (R…
noahgift Mar 3, 2026
9a41bcb
feat: FJ-1392+FJ-1393: recipe version conflicts + experiment tracking…
noahgift Mar 3, 2026
a0ca2e0
feat: FJ-1394+1395+1396+1397: sudo elevation, SBOM, parallel drift, d…
noahgift Mar 3, 2026
a7797bb
feat: FJ-1398+FJ-1399: brew provider + recipe SBOM expansion (Refs PM…
noahgift Mar 3, 2026
b04d6a0
feat: FJ-1400+FJ-1401: CBOM generation + convergence proof (Refs PMAT…
noahgift Mar 3, 2026
1399e94
feat: FJ-1402: SVG graph rendering + clippy fixes (Refs PMAT-038)
noahgift Mar 3, 2026
9faef84
feat: FJ-1403+1404+1405: privilege analysis, SLSA provenance, Merkle …
noahgift Mar 3, 2026
953c2b5
feat: FJ-1406+1407+1408: recipe bundles, model cards, agent SBOM (Ref…
noahgift Mar 3, 2026
080f7a9
feat: FJ-1409+FJ-1406: training reproducibility proof + bundle verify…
noahgift Mar 3, 2026
f08d240
feat: FJ-1410+1411+1412+1413: data freshness, validation, checkpoints…
noahgift Mar 3, 2026
f5de189
feat: FJ-1414+1415+1416: sovereignty tagging, cost estimation, model …
noahgift Mar 3, 2026
3669bd4
feat: FJ-1417+1418+1419: agent infrastructure recipes + cookbook (Ref…
noahgift Mar 3, 2026
87503cd
feat: FJ-1420+1421+1422+1423+1424: fault injection, runtime invariant…
noahgift Mar 3, 2026
5dca196
feat: FJ-1425+1426+1427+1428+1429: remote state, registry, catalog, m…
noahgift Mar 3, 2026
e36a59d
feat: FJ-1430+1431+1432+1433+1434+1435: query engine, signing, preser…
noahgift Mar 3, 2026
c38963c
feat: FJ-1436+1437: Saga coordinator + agent registry (#128, #163) (R…
noahgift Mar 4, 2026
853d6c0
feat: FJ-059+060: Pull agent + hybrid push/pull enforcement (#59, #60…
noahgift Mar 4, 2026
eeca220
feat: FJ-041+042: Kani proofs + TLA+ execution spec (#41, #42) (Refs …
noahgift Mar 4, 2026
75d30a0
feat: FJ-045+049: SAT dependency solver + Alloy spec (#45, #49) (Refs…
noahgift Mar 4, 2026
16acbad
feat: FJ-043+044+046: Refinement types, Verus spec, minimal changeset…
noahgift Mar 4, 2026
e9351ed
feat: FJ-051+104: MC/DC coverage analysis + structured logging (#51, …
noahgift Mar 4, 2026
b06017d
feat: FJ-105+114: Progress indicators + DO-330 qualification (#105, #…
noahgift Mar 4, 2026
61ea2bf
feat: FJ-107+115: Interactive TUI mode + flight-grade execution (#107…
noahgift Mar 4, 2026
77e7d19
feat: FJ-110+113: LSP server + Ferrocene certification (#110, #113) (…
noahgift Mar 4, 2026
fdca655
feat: FJ-095: Reproducible binary builds — 163/163 features complete …
noahgift Mar 4, 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
  •  
  •  
  •  
6 changes: 4 additions & 2 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
[env]
RUST_MIN_STACK = "8388608"
# Temporary coverage config - DO NOT COMMIT
# Replaces project config during coverage runs
[build]
target-dir = "/mnt/nvme-raid0/coverage/forjar"
1 change: 1 addition & 0 deletions .claude/worktrees/provable-contracts
15 changes: 15 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Dependabot configuration for GitHub Actions SHA pinning
# Generated by machines/clean-room/deploy-workflows.sh — do not edit manually.
# Spec: docs/specifications/sovereign-stack-protected-branch-strategy.md (Phase 4)
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
commit-message:
prefix: "ci"
labels:
- "dependencies"
- "ci"
47 changes: 47 additions & 0 deletions .github/workflows/book.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Book

on:
push:
branches: [main]
paths: ['docs/book/**', '.github/workflows/book.yml']
workflow_dispatch:

permissions:
pages: write
id-token: write

concurrency:
group: pages
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install mdBook
run: |
mkdir -p $HOME/.local/bin
curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.44/mdbook-v0.4.44-x86_64-unknown-linux-gnu.tar.gz \
| tar -xz -C $HOME/.local/bin
echo "$HOME/.local/bin" >> $GITHUB_PATH

- name: Build book
run: mdbook build docs/book

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/book/book

deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
84 changes: 20 additions & 64 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,71 +1,27 @@
# Per-repo CI workflow — merge gate via clean-room verification
# Generated by machines/clean-room/deploy-workflows.sh — do not edit manually.
# Spec: docs/specifications/sovereign-stack-protected-branch-strategy.md
#
# Calls the centralized reusable gate workflow in paiml/infra.
# Branch protection requires "clean-room / gate" to pass before merge.

name: CI

on:
pull_request_target:
branches: [main, master]
push:
branches: [main]
pull_request:
branches: [main]
branches: [main, master]

env:
CARGO_TERM_COLOR: always
RUSTFLAGS: -Dwarnings
# One CI run per PR; cancel stale runs
concurrency:
group: ci-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo test --all-targets
- run: cargo clippy --all-targets -- -D warnings

container-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: docker build -t forjar-test-target -f tests/Dockerfile.test-target .
- run: cargo test --features container-test

fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- run: cargo fmt --check

dogfood:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Validate all dogfood configs
run: |
for f in examples/dogfood-*.yaml; do
echo "--- $f ---"
cargo run -- validate -f "$f"
done
- name: Run all examples
run: |
for ex in $(cargo run --example 2>&1 | grep '^\s' | awk '{print $1}'); do
echo "--- $ex ---"
cargo run --example "$ex"
done
- name: Verify MCP schema export
run: cargo run -- mcp --schema | python3 -c "import sys, json; d = json.load(sys.stdin); assert d['tool_count'] == 9"

bench:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Compile benchmarks
run: cargo bench --no-run
- name: Run inline bench (quick)
run: cargo run -- bench --iterations 10 --json
clean-room:
uses: paiml/infra/.github/workflows/clean-room-gate.yml@main
with:
repo: ${{ github.event.repository.name }}
pr_sha: ${{ github.event.pull_request.head.sha || github.sha }}
secrets: inherit
125 changes: 125 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# Per-repo release workflow — tagged releases only
# Generated by machines/clean-room/deploy-workflows.sh — do not edit manually.
# Spec: docs/specifications/sovereign-stack-protected-branch-strategy.md
#
# Flow: tag push → clean-room gate → package verify → trusted publish → GitHub Release
#
# Tag formats:
# v1.0.0 — single-crate repos
# v-<crate>-1.0.0 — workspace repos (e.g. v-apr-cli-0.4.0)
#
# IMPORTANT: Tags must be pushed with a PAT or deploy key (not GITHUB_TOKEN),
# otherwise this workflow will not trigger (GitHub anti-recursion measure).

name: Release

on:
push:
tags: ['v*']

permissions:
contents: write # create GitHub Release
id-token: write # OIDC for crates.io Trusted Publishing

# One release at a time per repo
concurrency:
group: release-${{ github.repository }}
cancel-in-progress: false

jobs:
# ── Gate: clean-room must pass before publish ───────────
gate:
uses: paiml/infra/.github/workflows/clean-room-gate.yml@main
with:
repo: ${{ github.event.repository.name }}
pr_sha: ${{ github.sha }}
secrets: inherit

# ── Verify: tag-version match + package tarball ─────────
verify:
needs: gate
runs-on: [self-hosted, clean-room]
outputs:
crate_name: ${{ steps.parse.outputs.crate_name }}
version: ${{ steps.parse.outputs.version }}
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Parse tag and verify version
id: parse
run: |
TAG="${GITHUB_REF_NAME}"

# Parse tag format: v1.0.0 or v-cratename-1.0.0
if [[ "$TAG" =~ ^v-([a-z][a-z0-9_-]*)-([0-9]+\..+)$ ]]; then
CRATE_NAME="${BASH_REMATCH[1]}"
TAG_VER="${BASH_REMATCH[2]}"
echo "Workspace release: crate=$CRATE_NAME version=$TAG_VER"
elif [[ "$TAG" =~ ^v([0-9]+\..+)$ ]]; then
CRATE_NAME=""
TAG_VER="${BASH_REMATCH[1]}"
echo "Single-crate release: version=$TAG_VER"
else
echo "::error::Tag '$TAG' does not match expected format (v1.0.0 or v-crate-1.0.0)"
exit 1
fi

# Use cargo metadata for reliable version extraction
if [ -n "$CRATE_NAME" ]; then
CARGO_VER=$(cargo metadata --format-version 1 --no-deps \
| jq -r ".packages[] | select(.name == \"$CRATE_NAME\") | .version")
if [ -z "$CARGO_VER" ] || [ "$CARGO_VER" = "null" ]; then
echo "::error::Crate '$CRATE_NAME' not found in workspace"
exit 1
fi
else
CARGO_VER=$(cargo metadata --format-version 1 --no-deps \
| jq -r '.packages[0].version')
fi

if [ "$TAG_VER" != "$CARGO_VER" ]; then
echo "::error::Tag version $TAG_VER != Cargo.toml version $CARGO_VER"
exit 1
fi

echo "crate_name=$CRATE_NAME" >> "$GITHUB_OUTPUT"
echo "version=$TAG_VER" >> "$GITHUB_OUTPUT"
echo "Version verified: $TAG_VER"

- name: Verify package tarball
run: |
CRATE="${{ steps.parse.outputs.crate_name }}"
if [ -n "$CRATE" ]; then
cargo package --verify -p "$CRATE"
else
cargo package --verify
fi

# ── Publish: OIDC trusted publishing to crates.io ──────
publish:
needs: verify
runs-on: [self-hosted, clean-room]
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Authenticate to crates.io (OIDC)
uses: rust-lang/crates-io-auth-action@b7e9a28eded4986ec6b1fa40eeee8f8f165559ec # v1.0.3

- name: Publish
run: |
CRATE="${{ needs.verify.outputs.crate_name }}"
if [ -n "$CRATE" ]; then
cargo publish -p "$CRATE"
else
cargo publish
fi

- name: Create GitHub Release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create "$GITHUB_REF_NAME" \
--title "$GITHUB_REF_NAME" \
--generate-notes
1 change: 1 addition & 0 deletions .pmat-metrics/deny-cache.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
advisories ok, bans ok, licenses FAILED, sources ok
1 change: 1 addition & 0 deletions .pmat-metrics/lint-cache.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
cargo clippy --all-targets -- -D warnings
Loading
Loading