Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
867 commits
Select commit Hold shift + click to select a range
09716ec
test: guard BETA.3 Windows fixture binding
mark-e-deyoung Oct 6, 2026
947e51c
Merge PR #327: bind qualified Windows W1 source profile
mark-e-deyoung Oct 6, 2026
c3ac0e6
compute: add pure Windows W1 native planner
mark-e-deyoung Oct 6, 2026
ef24d12
test: qualify portable Windows W1 native lowering
mark-e-deyoung Oct 6, 2026
2d3981f
ci: qualify pure Windows W1 native planner
mark-e-deyoung Oct 6, 2026
94c4c6e
Merge PR #328: add pure Windows W1 native planner
mark-e-deyoung Oct 6, 2026
9eb1ff0
RDTE: lower TrueNAS V1 boot media through owned ZVOL DISK
mark-e-deyoung Oct 6, 2026
cbf3857
test: bind TrueNAS V1 ZVOL boot lowering
mark-e-deyoung Oct 6, 2026
308820f
CI: trigger guest contract on TrueNAS V1 probe changes
mark-e-deyoung Oct 6, 2026
1256c6d
Merge pull request #330 from SemperSupra/fix/truenas-v1-zvol-disk-low…
mark-e-deyoung Oct 6, 2026
3e18519
request: TrueNAS VM V1 rep005 ZVOL DISK causal rep
mark-e-deyoung Oct 6, 2026
1a3de4b
Merge pull request #331 from SemperSupra/request/tn-26-beta3-t3-compu…
mark-e-deyoung Oct 6, 2026
82b6923
ci: join compute RDTE to repo-wide heavyweight queue
mark-e-deyoung Oct 6, 2026
9a1e9e6
test: enforce repo-wide heavyweight queue contract
mark-e-deyoung Oct 6, 2026
f4bce88
Merge pull request #338 from SemperSupra/fix/global-heavyweight-concu…
mark-e-deyoung Oct 6, 2026
8a4a542
RDTE: qualify Foundry publication-bound exporter head
mark-e-deyoung Oct 6, 2026
5b932d6
RDTE: qualify Foundry publication-bound exporter head
mark-e-deyoung Oct 6, 2026
478ca25
RDTE: qualify Foundry publication-bound exporter head
mark-e-deyoung Oct 6, 2026
b458fae
RDTE: pin merged publication-bound Foundry authority
mark-e-deyoung Oct 6, 2026
c2b3f27
RDTE: pin merged publication-bound Foundry authority
mark-e-deyoung Oct 6, 2026
1a54c95
RDTE: pin merged publication-bound Foundry authority
mark-e-deyoung Oct 6, 2026
8ab893c
Merge PR #324: adopt Avahi-capable FolioRelay Foundry authority
mark-e-deyoung Oct 6, 2026
e0f2937
RDTE: request FolioRelay 25.10.7 Avahi F0-F5 rep
mark-e-deyoung Oct 6, 2026
4b5e575
Merge PR #340: request FolioRelay 25.10.7 Avahi F0-F5 rep
mark-e-deyoung Oct 6, 2026
8b996e2
RDTE: allow discovery group to traverse control fixture root
mark-e-deyoung Oct 6, 2026
2724d53
test: lock least-privilege control-root traversal for discovery
mark-e-deyoung Oct 6, 2026
3b0da92
RDTE: request 25.10.7 FolioRelay control-traverse rep 005
mark-e-deyoung Oct 6, 2026
8418a12
Merge PR #346: FolioRelay 25.10.7 control-traverse rep 005
mark-e-deyoung Oct 6, 2026
1902ed5
RDTE: materialize FolioRelay host paths from Foundry control
mark-e-deyoung Oct 6, 2026
371ddb1
RDTE: qualify Foundry host-path contract authority
mark-e-deyoung Oct 6, 2026
9914153
RDTE: qualify Foundry host-path contract authority
mark-e-deyoung Oct 6, 2026
3eee997
test: consume Foundry host-path permission contract
mark-e-deyoung Oct 6, 2026
6fba49d
RDTE: observe Avahi mDNS via legacy-unicast query
mark-e-deyoung Oct 6, 2026
ace3b5e
test: lock legacy-unicast observer socket/query plan
mark-e-deyoung Oct 6, 2026
b04e01b
RDTE: select legacy-unicast observer on Avahi targets
mark-e-deyoung Oct 6, 2026
47f3624
RDTE: request 25.10.7 legacy-unicast observer rep 006
mark-e-deyoung Oct 6, 2026
43d2910
Merge PR #350: FolioRelay 25.10.7 legacy-unicast observer rep 006
mark-e-deyoung Oct 6, 2026
a3f2d51
RDTE: pin merged FolioRelay host-path Foundry authority
mark-e-deyoung Oct 6, 2026
7b790f7
RDTE: pin merged FolioRelay host-path Foundry authority
mark-e-deyoung Oct 6, 2026
aee61d4
RDTE: pin merged FolioRelay host-path Foundry authority
mark-e-deyoung Oct 6, 2026
be144ee
Merge PR #349: consume FolioRelay host-path contract
mark-e-deyoung Oct 6, 2026
2b63146
RDTE: request FolioRelay 25.04.2.6 F0-F5 rep
mark-e-deyoung Oct 6, 2026
ac0dc45
Merge PR #351: request FolioRelay 25.04.2.6 F0-F5 rep
mark-e-deyoung Oct 6, 2026
51131fd
RDTE: request FolioRelay 25.04.1 final F0-F5 rep
mark-e-deyoung Oct 7, 2026
413c853
Merge PR #352: request FolioRelay 25.04.1 F0-F5 rep
mark-e-deyoung Oct 7, 2026
bfb4c33
rdte: add exact-target GARM controller F0-F5 oracle
mark-e-deyoung Oct 7, 2026
aa824bb
rdte: bind exact Foundry profile blobs
mark-e-deyoung Oct 7, 2026
d49ee31
rdte: expose exact Foundry profile blob identity
mark-e-deyoung Oct 7, 2026
6772684
test: lock GARM controller F0-F5 exact target binding
mark-e-deyoung Oct 7, 2026
d3db5ba
rdte: wire exact-target GARM controller F0-F5 selector
mark-e-deyoung Oct 7, 2026
8be971b
test: lock GARM controller F0-F5 reconciliation contract
mark-e-deyoung Oct 7, 2026
e580b71
rdte: consume merged exact-target GARM F0-F5 producer
mark-e-deyoung Oct 7, 2026
6fc8cbd
rdte: admit controller F0-F5 selector at workflow edges
mark-e-deyoung Oct 7, 2026
ba3ffa9
test: guard exact GARM controller F0-F5 routing
mark-e-deyoung Oct 7, 2026
bf6eac5
test: admit GARM controller cross-version selector
mark-e-deyoung Oct 7, 2026
1365a6d
rdte: keep core method discovery as bootstrap oracle
mark-e-deyoung Oct 7, 2026
5e97ed4
Merge exact-version GARM controller F0-F5 consumer
mark-e-deyoung Oct 7, 2026
85a6f45
request: GARM controller BETA.3 F0-F5 row
mark-e-deyoung Oct 7, 2026
0047217
test: admit GARM controller request selector
mark-e-deyoung Oct 7, 2026
1b1aa00
Merge GARM controller BETA.3 F0-F5 request
mark-e-deyoung Oct 7, 2026
cb4d00f
Request GARM controller 25.10.7 F0-F5 row
mark-e-deyoung Oct 7, 2026
10058e0
Fix 25.10.7 GARM controller target authority
mark-e-deyoung Oct 7, 2026
f861c79
Launch corrected 25.10.7 GARM controller rep 002
mark-e-deyoung Oct 7, 2026
ad26a75
Request GARM controller 25.04.2.6 F0-F5 row
mark-e-deyoung Oct 7, 2026
a9abde5
Request final GARM controller 25.04.1 F0-F5 row
mark-e-deyoung Oct 7, 2026
e7388b1
RDTE: consume exact GARM Container pre-B4 fixture (#356)
mark-e-deyoung Oct 7, 2026
6f4078f
Request GARM Container BETA.3 pre-B4 system rep
mark-e-deyoung Oct 7, 2026
be6f1f9
RDTE: admit bounded GARM Container request selector
mark-e-deyoung Oct 7, 2026
2f3d807
RDTE: keep WOW request allowlist aligned
mark-e-deyoung Oct 7, 2026
6554081
Launch corrected GARM Container pre-B4 rep 002
mark-e-deyoung Oct 7, 2026
a1fc1b2
RDTE: fix Container pre-B4 middleware TLS (#357)
mark-e-deyoung Oct 7, 2026
5280e85
Launch GARM Container pre-B4 rep 003
mark-e-deyoung Oct 7, 2026
62c94e3
prep(foliorelay): admit dedicated HTTPS TLS host path
mark-e-deyoung Oct 7, 2026
45ee549
prep(foliorelay): validate management transport isolation
mark-e-deyoung Oct 7, 2026
ba5f0a0
prep(foliorelay): support HTTPS management requests
mark-e-deyoung Oct 7, 2026
c67c30c
prep(foliorelay): fingerprint HTTPS management identity
mark-e-deyoung Oct 7, 2026
672fcb1
prep(foliorelay): derive management scheme from Foundry control
mark-e-deyoung Oct 7, 2026
3d8a094
prep(foliorelay): exercise HTTPS across T6 lifecycle
mark-e-deyoung Oct 7, 2026
bc5c1a9
prep(foliorelay): retain management TLS identity evidence
mark-e-deyoung Oct 7, 2026
1a0aa42
test(foliorelay): qualify HTTPS consumer contract
mark-e-deyoung Oct 7, 2026
7a9b43d
rdte: pin hardened FolioRelay HTTPS control digest
mark-e-deyoung Oct 8, 2026
9f0d698
rdte: bind merged FolioRelay HTTPS Foundry authority
mark-e-deyoung Oct 8, 2026
1b40d64
rdte: update FolioRelay exact Foundry binding assertions
mark-e-deyoung Oct 8, 2026
43b2904
rdte: bind FolioRelay prep workflow to HTTPS authority
mark-e-deyoung Oct 8, 2026
04bdab5
Merge FolioRelay HTTPS T6 consumer
mark-e-deyoung Oct 8, 2026
5041327
RDTE: stage FolioRelay BETA.3 WebUI HTTPS F0-F5
mark-e-deyoung Oct 8, 2026
e893b1f
Launch FolioRelay BETA.3 WebUI HTTPS F0-F5
mark-e-deyoung Oct 8, 2026
0e8ce40
rdte: verify TrueNAS FolioRelay Web UI portal readback
mark-e-deyoung Oct 8, 2026
c9ad015
rdte: bind portal-aware FolioRelay Foundry authority
mark-e-deyoung Oct 8, 2026
53329bd
rdte: prep portal-aware FolioRelay control
mark-e-deyoung Oct 8, 2026
432c44d
rdte: test TrueNAS Web UI portal oracle
mark-e-deyoung Oct 8, 2026
9104ee6
FolioRelay: rebind portal consumer to healthcheck-fixed Foundry
mark-e-deyoung Oct 8, 2026
4854c72
FolioRelay: rebind portal consumer to healthcheck-fixed Foundry
mark-e-deyoung Oct 8, 2026
c296895
FolioRelay: rebind portal consumer to healthcheck-fixed Foundry
mark-e-deyoung Oct 8, 2026
144cd3e
RDTE: verify FolioRelay TrueNAS HTTPS Web UI portal
mark-e-deyoung Oct 8, 2026
11ccac5
RDTE: request FolioRelay BETA.3 HTTPS healthfix rep 015
mark-e-deyoung Oct 8, 2026
dbdcdba
Launch FolioRelay BETA.3 HTTPS healthfix F0-F5
mark-e-deyoung Oct 8, 2026
45f1b60
RDTE: forward FolioRelay HTTPS management port
mark-e-deyoung Oct 8, 2026
3e215fd
RDTE: regress FolioRelay HTTPS host forwarding
mark-e-deyoung Oct 8, 2026
11e6cae
RDTE: forward FolioRelay management probe to HTTPS
mark-e-deyoung Oct 8, 2026
90288e9
RDTE: request FolioRelay BETA.3 HTTPS hostfwd rep 016
mark-e-deyoung Oct 8, 2026
3b5bb19
Launch FolioRelay BETA.3 HTTPS hostfwd F0-F5
mark-e-deyoung Oct 8, 2026
ee1290a
RDTE: request refreshed FolioRelay 25.10.7 F0-F5
mark-e-deyoung Oct 8, 2026
c0421d7
RDTE: bind FolioRelay 25.10.7 request to exact authority
mark-e-deyoung Oct 8, 2026
92ba0a9
Launch refreshed FolioRelay 25.10.7 F0-F5
mark-e-deyoung Oct 8, 2026
84be7a8
RDTE: consume source-derived GARM Container rootfs projection (#369)
mark-e-deyoung Oct 8, 2026
d8872c2
Prepare GARM Container BETA.3 pre-B4 rep 004
mark-e-deyoung Oct 8, 2026
4d0ecb2
RDTE: add fail-closed exact BETA.3 GARM VM static fixture consumer
mark-e-deyoung Oct 8, 2026
005f593
RDTE: adversarial VM exact-template/ownership/claim-boundary fixture …
mark-e-deyoung Oct 8, 2026
0630dc1
CI: validate exact GARM VM fixture in cheap static PR lane
mark-e-deyoung Oct 8, 2026
5569ffc
Merge pull request #373 from SemperSupra/prep/garm-vm-pre-b4-static-c…
mark-e-deyoung Oct 8, 2026
b837d3d
RDTE: add bounded read-only VM template preflight without support adm…
mark-e-deyoung Oct 8, 2026
163cb5c
RDTE: add VM template read-only preflight falsification tests
mark-e-deyoung Oct 8, 2026
ae3e193
CI: gate read-only VM template preflight and adversarial tests
mark-e-deyoung Oct 8, 2026
0d1f5c1
Merge pull request #375 from SemperSupra/prep/garm-vm-template-readon…
mark-e-deyoung Oct 8, 2026
ee066dd
RDTE: request refreshed FolioRelay 25.04.2.6 F0-F5 successor
mark-e-deyoung Oct 8, 2026
57d8a20
Launch refreshed FolioRelay 25.04.2.6 F0-F5
mark-e-deyoung Oct 8, 2026
04c1be2
RDTE: source-bind FolioRelay requested-shape images
mark-e-deyoung Oct 8, 2026
16ac8c3
RDTE: regress stale FolioRelay receipt image metadata
mark-e-deyoung Oct 8, 2026
c96defd
RDTE: source-bind FolioRelay requested-shape image evidence
mark-e-deyoung Oct 8, 2026
fd97e7a
RDTE: prepare final refreshed FolioRelay 25.04.1 F0-F5
mark-e-deyoung Oct 8, 2026
a2b0a5b
Launch final refreshed FolioRelay 25.04.1 F0-F5
mark-e-deyoung Oct 8, 2026
ac4c56d
Reconcile GARM Container rep 004 with completed RDTE requests
mark-e-deyoung Oct 10, 2026
502c51b
feat(rdte): add bounded native Paper lifecycle and status/world oracl…
mark-e-deyoung Oct 11, 2026
cb363fe
test(rdte): falsify Minecraft source, ownership and world-data bounda…
mark-e-deyoung Oct 11, 2026
fc57bf3
test(rdte): resolve existing sibling DDP module from repo source
mark-e-deyoung Oct 11, 2026
7b7e4ea
ci(rdte): add separate cheap validation for Minecraft TrueNAS consumer
mark-e-deyoung Oct 11, 2026
ec7f177
feat(rdte): stage immutable single-capsule Minecraft 25.04.1 candidat…
mark-e-deyoung Oct 11, 2026
72fc556
feat(rdte): register exact Minecraft Paper T6 provider under existing…
mark-e-deyoung Oct 11, 2026
b4820fe
feat(rdte): wire source-bound Minecraft T6 producer and exact Java or…
mark-e-deyoung Oct 11, 2026
733409a
feat(rdte): bind Minecraft Paper T6 to disposable QEMU forwarding and…
mark-e-deyoung Oct 11, 2026
07e0f1c
feat(rdte): extend existing capsule executor with exact Minecraft sta…
mark-e-deyoung Oct 11, 2026
f94e544
fix(rdte): invoke exact product oracle synthetic test as standalone s…
mark-e-deyoung Oct 11, 2026
cf98c75
feat(rdte): adopt existing middleware byte-transfer for exact world s…
mark-e-deyoung Oct 11, 2026
18e3558
feat(rdte): enforce same exact world sentinel bytes across native app…
mark-e-deyoung Oct 11, 2026
11ba164
test(rdte): cover exact Minecraft capsule argv with existing executor…
mark-e-deyoung Oct 11, 2026
d4517fa
ci(rdte): preserve existing single-capsule equivalence and manifest r…
mark-e-deyoung Oct 11, 2026
a6c799e
test(rdte): include registered Minecraft consumer in exact known-prob…
mark-e-deyoung Oct 11, 2026
080275c
test(rdte): preserve 26-BETA.3 product gate with exact Minecraft 25.0…
mark-e-deyoung Oct 11, 2026
d33fd5c
test(rdte): preserve 26-BETA.3 product gate with exact Minecraft 25.0…
mark-e-deyoung Oct 11, 2026
c9caed1
fix(rdte): require owned ZFS permissions and bounded middleware-only …
mark-e-deyoung Oct 11, 2026
7655e68
fix(rdte): reject unexpected Paper image and keep immutable runtime d…
mark-e-deyoung Oct 11, 2026
3b7aa46
RDTE: stage Minecraft Paper native T6 provider on disposable TrueNAS
mark-e-deyoung Oct 11, 2026
3185588
run(rdte): request first source-bound Minecraft Paper nested TrueNAS …
mark-e-deyoung Oct 11, 2026
f5dadf1
test(rdte): admit exact source-qualified Minecraft Paper in existing …
mark-e-deyoung Oct 11, 2026
758c90b
test(rdte): admit exact source-qualified Minecraft Paper in existing …
mark-e-deyoung Oct 11, 2026
d2df68a
run(rdte): admit Minecraft Paper nested TrueNAS T6 after complete con…
mark-e-deyoung Oct 11, 2026
8fa5714
Reconcile staged GARM rep 004 with latest shared RDTE request (no lau…
mark-e-deyoung Oct 11, 2026
0c22527
run(rdte): admit exact GARM BETA.3 Container pre-B4 rep 004
mark-e-deyoung Oct 11, 2026
c844e7a
fix(rdte): invoke nonexecutable Python capsule adapter through interp…
mark-e-deyoung Oct 11, 2026
9b28e8b
fix(rdte): dispatch Python adapters via interpreter while preserving …
mark-e-deyoung Oct 11, 2026
93916e2
RDTE: restore Python capsule execution and require Minecraft product …
mark-e-deyoung Oct 11, 2026
96771d9
run(rdte): request Minecraft Paper T6 rep 003 after nonexecutable cap…
mark-e-deyoung Oct 11, 2026
b413d0e
fix(minecraft): match current TrueNAS native catalog r1.15.29 and imm…
mark-e-deyoung Oct 11, 2026
7a3e111
fix(minecraft): bind source-proven catalog 1.15.29 and digest-pinned …
mark-e-deyoung Oct 11, 2026
8f31715
RDTE: uplift Minecraft native catalog to 1.15.29 with immutable OCI i…
mark-e-deyoung Oct 11, 2026
1771faa
run(rdte): admit Minecraft Paper live catalog 1.15.29 T6 disposable T…
mark-e-deyoung Oct 11, 2026
22dae9f
fix(minecraft): preserve redacted native app.create job errors and in…
mark-e-deyoung Oct 11, 2026
ec39809
fix(minecraft): make credential-redaction regex consume whitespace an…
mark-e-deyoung Oct 11, 2026
45ab52b
RDTE: preserve bounded job error and clean-capsule failure evidence
mark-e-deyoung Oct 11, 2026
be699f2
run(rdte): request isolated Minecraft native app.create diagnostic re…
mark-e-deyoung Oct 11, 2026
a360e59
fix(minecraft): omit absent optional seed from native TrueNAS app.cre…
mark-e-deyoung Oct 11, 2026
10bb1c1
RDTE: make native Minecraft create accept source seed absence
mark-e-deyoung Oct 11, 2026
80556e0
run(rdte): admit disposable Minecraft Paper native seed-null fix T6 r…
mark-e-deyoung Oct 11, 2026
5f00ccc
fix(minecraft): reconcile root requested-shape catalog revision with …
mark-e-deyoung Oct 11, 2026
c924518
fix(rdte): retain sanitized live TrueNAS ownership mismatch diagnostics
mark-e-deyoung Oct 11, 2026
edfb1b2
request(rdte): admit exact TrueNAS Paper rep 007 live readback diagnosis
mark-e-deyoung Oct 11, 2026
80dca6c
RDTE: align Minecraft requested-shape metadata with native catalog 1.…
mark-e-deyoung Oct 11, 2026
2fe074d
fix(minecraft): tolerate only catalog-default empty host_ips on port …
mark-e-deyoung Oct 11, 2026
c1f3b21
RDTE: accept only native empty host_ips default in Minecraft owner re…
mark-e-deyoung Oct 11, 2026
0ada2d7
run(rdte): admit disposable Minecraft Paper native port-normalization…
mark-e-deyoung Oct 11, 2026
0257b87
fix(minecraft): split live Java-status vs world-file diagnostic evidence
mark-e-deyoung Oct 12, 2026
c4b590e
test(minecraft): assert actual status-diagnostic middleware witness a…
mark-e-deyoung Oct 12, 2026
0397a5c
RDTE: preserve independent Java protocol and world-readiness failures
mark-e-deyoung Oct 12, 2026
1dc86b1
run(rdte): request serialized native Minecraft diagnostic 009 protoco…
mark-e-deyoung Oct 12, 2026
8d39e51
fix(rdte): pin source-qualified Paper status oracle and exact protoco…
mark-e-deyoung Oct 12, 2026
99bf707
RDTE: require branded Paper 1.21.11 and protocol 774 before world acc…
mark-e-deyoung Oct 12, 2026
50d6aa7
run(rdte): admit exact Paper 1.21.11 branded ping/protocol 774 T6 liv…
mark-e-deyoung Oct 12, 2026
6017846
RDTE: execute COLLAGE read-only native App join inside disposable Tru…
mark-e-deyoung Oct 12, 2026
a18595a
rdte(collage): admit one fresh isolated native TrueNAS P2 read-only g…
mark-e-deyoung Oct 12, 2026
eb1b0ac
fix: admit COLLAGE P2 only under exact T6 product contract (#398)
mark-e-deyoung Oct 12, 2026
35623e3
rdte(collage): fresh gated P2 guest after corrected exact product all…
mark-e-deyoung Oct 12, 2026
28720b6
fix: parse TrueNAS 25.04 privilege.roles as array before disposable A…
mark-e-deyoung Oct 12, 2026
d39703d
rdte(collage): bounded unique P2-003 guest rep for corrected TrueNAS …
mark-e-deyoung Oct 12, 2026
0678a73
diag: distinguish exact TrueNAS observer privilege, primary group and…
mark-e-deyoung Oct 12, 2026
615a421
rdte(collage): admit unique P2-004 guest to disambiguate effective-ro…
mark-e-deyoung Oct 12, 2026
5110403
Guard COLLAGE TrueNAS KVM against upstream Minecraft catalog version …
mark-e-deyoung Oct 12, 2026
ddbaab3
fix: execute rotating-catalog preflight in TrueNAS job, never Proxmox…
mark-e-deyoung Oct 12, 2026
476a2e5
RDTE: isolate COLLAGE P2 native Minecraft catalog 1.15.30 and immutab…
mark-e-deyoung Oct 12, 2026
815a9f3
rdte(collage): launch one new 1.15.30 source-locked native TrueNAS ob…
mark-e-deyoung Oct 12, 2026
afac373
rdte: fail-closed vanilla26.3 native T6 pre-admission (#407)
mark-e-deyoung Oct 13, 2026
ab6f7bf
ci(rdte): verify merged Foundry vanilla26.3 control in independent gu…
mark-e-deyoung Oct 13, 2026
5f6e0c6
fix(collage): admit documented #625 P2 source-locked authority succes…
mark-e-deyoung Oct 13, 2026
c55c32c
Merge pull request #414 from SemperSupra/fix/collage-p2-authority-suc…
mark-e-deyoung Oct 13, 2026
5e76748
run(collage): request unique P2-006 disposable guest after #625 contr…
mark-e-deyoung Oct 13, 2026
1d0fff8
Admit immutable vanilla 26.3 native TrueNAS source control without gu…
mark-e-deyoung Oct 13, 2026
a51c2fd
Qualify distinct vanilla 26.3 native T6 guest oracle and preserve Pap…
mark-e-deyoung Oct 14, 2026
b355079
Wire exact vanilla 26.3 TrueNAS T6 signed producer, guest route and r…
mark-e-deyoung Oct 14, 2026
9b156b0
Admit one disposable TrueNAS 25.04.2.6 vanilla 26.3 native guest requ…
mark-e-deyoung Oct 14, 2026
18c7c9d
Correct official TrueNAS Apps catalog master preflight before native …
mark-e-deyoung Oct 14, 2026
7ed95e6
Admit one fresh vanilla26.3 TrueNAS native guest after official maste…
mark-e-deyoung Oct 14, 2026
cca9953
Correct scoped COLLAGE observer grants to POSIX GID, not database gro…
mark-e-deyoung Oct 14, 2026
c869a5a
Add opt-in scoped COLLAGE TLS App readback to native vanilla263 guest…
mark-e-deyoung Oct 14, 2026
be8772f
Admit one disposable vanilla 26.3 scoped TLS read-only COLLAGE guest …
mark-e-deyoung Oct 14, 2026
2118bed
Pin exact corrected COLLAGE native Go Raw TrueNAS version source (#432)
mark-e-deyoung Oct 14, 2026
31f6d2c
Read disposable observer POSIX GID via middleware group.query (#433)
mark-e-deyoung Oct 14, 2026
3a43f87
Admit scoped TrueNAS vanilla263 COLLAGE readback rep 005 (#434)
mark-e-deyoung Oct 14, 2026
be04f1c
Bound every scoped TrueNAS APPS_READ RPC failure by safe phase code (…
mark-e-deyoung Oct 14, 2026
4a5e8d8
Stage real pinned Lantern 26.3 ZIP into disposable native TrueNAS App…
mark-e-deyoung Oct 14, 2026
8109991
Admit single disposable native TrueNAS real Lantern ZIP and scoped re…
mark-e-deyoung Oct 14, 2026
685cd77
Source-qualify loopback-only synthetic vanilla26.3 player variant wit…
mark-e-deyoung Oct 14, 2026
4b8f2df
Bound TrueNAS scoped API-key DDP failures to safe numeric code only (…
mark-e-deyoung Oct 14, 2026
6c19571
Admit one disposable native Lantern and scoped key errno rep 007 (#442)
mark-e-deyoung Oct 14, 2026
6ae028a
fix(op4f): bound scoped guest DDP key creation and sanitize failure c…
mark-e-deyoung Oct 14, 2026
1e2b836
admit(op4f): unique 008 native scoped Go observer diagnostic
mark-e-deyoung Oct 14, 2026
837971e
qual(op4f): bind offline player source overlay to runner-owned QEMU l…
mark-e-deyoung Oct 14, 2026
d5b240f
fix(op4f): safely classify structured oversized TrueNAS key-issuance …
mark-e-deyoung Oct 14, 2026
b8f05a7
fix(op4f): attempt bounded scoped observer before repeated native ZIP…
mark-e-deyoung Oct 14, 2026
15892a3
admit(op4f): single 009 native scoped DDP diagnosis after preflight
mark-e-deyoung Oct 14, 2026
0ea980a
fix(op4f): privacy-safe DDP validation field and postfailure count di…
mark-e-deyoung Oct 14, 2026
a639201
admit(op4f): single 010 validation-field count evidence request
mark-e-deyoung Oct 14, 2026
4e0372e
fix(op4f): one-hour TrueNAS EJSON datetime for scoped observer
mark-e-deyoung Oct 14, 2026
08410f3
admit(op4f): one serialized 011 EJSON scoped native G2 rep
mark-e-deyoung Oct 14, 2026
8670fc9
feat(op4g): source-qualify exact owner native world rollback mechanics
mark-e-deyoung Oct 14, 2026
bcf4ea4
feat(op4g): wire fixed-owner native rollback into disposable guest only
mark-e-deyoung Oct 14, 2026
2192a23
admit(op4g): single native ZFS snapshot and injected rollback rep 012
mark-e-deyoung Oct 14, 2026
6702c9d
feat(op4h): source-qualify exact native loopback Mineflayer client ca…
mark-e-deyoung Oct 14, 2026
03fcf87
feat(op4h): opt-in native offline player candidate and postrollback c…
mark-e-deyoung Oct 14, 2026
e767642
admit(op4h): one isolated native Mineflayer causal visible test 013
mark-e-deyoung Oct 14, 2026
12e8725
fix(op4h): put pinned synthetic client install in native TrueNAS G4 job
mark-e-deyoung Oct 14, 2026
db06d78
admit(op4h): unique corrected native client one-shot 014
mark-e-deyoung Oct 14, 2026
189bd93
fix(op4h): use offline UUID for native synthetic operator; retain bou…
mark-e-deyoung Oct 14, 2026
71c36ff
admit(op4h): one disposable native Mineflayer offline UUID 015 qualif…
mark-e-deyoung Oct 14, 2026
6705d49
test(op4h): pin actual Java26.3 offline UUID image helper with no net…
mark-e-deyoung Oct 15, 2026
c84ab5c
feat(G4): bounded Anvil candidate/rollback source decoder (no native …
mark-e-deyoung Oct 15, 2026
aae3919
feat(G4): fixed owned Anvil region readback source seam (no live gues…
mark-e-deyoung Oct 15, 2026
34415f7
feat(G4): three checkpoint native world witness source (no new guest …
mark-e-deyoung Oct 15, 2026
6c6e40e
test(OP4I-016): admit one fresh native Anvil backend three-checkpoint…
mark-e-deyoung Oct 15, 2026
c58e8ed
fix(G4): bounded phase census for failed native Anvil readback (no gu…
mark-e-deyoung Oct 15, 2026
583a737
feat(G4): qualify exact 1.15.31 Foundry signed source and native cons…
mark-e-deyoung Oct 15, 2026
121180e
fix(G4): independently pin live official native App1.15.31 preflight,…
mark-e-deyoung Oct 15, 2026
96b06a1
admit(G4): one fresh OP4J-017 native 1.15.31 Anvil phase qualificatio…
mark-e-deyoung Oct 15, 2026
f7733ae
fix(G4): product-scoped 1.15.31 parser admission before guest receipt
mark-e-deyoung Oct 15, 2026
7fab60a
admit(G4): one distinct OP4K-018 parser-qualified native 1.15.31 Anvi…
mark-e-deyoung Oct 15, 2026
f590f8a
fix(rdte): source-pin COLLAGE 1.15.31 and classify OP4K join failures
mark-e-deyoung Oct 18, 2026
09e3043
admission(op4l): one-use public disposable vanilla263 native G4 rep
mark-e-deyoung Oct 18, 2026
5bd4b54
fix(g4): bounded Anvil stat failure census without provider leakage
mark-e-deyoung Oct 18, 2026
725d2d9
fix(g4): use Mojang Java26.3 namespaced overworld region instead of l…
mark-e-deyoung Oct 18, 2026
f86f380
admission(op4m): one-use native Java 26.3 namespaced Anvil G4 qualifi…
mark-e-deyoung Oct 18, 2026
2376961
fix(g4): accept exact TrueNAS single-use job-bound Anvil download URL
mark-e-deyoung Oct 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
71 changes: 71 additions & 0 deletions .github/workflows/garm-vm-pre-b4-static.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: GARM VM pre-B4 static consumer

on:
pull_request:
paths:
- .github/workflows/garm-vm-pre-b4-static.yml
- scripts/truenas_garm_vm_pre_b4_fixture.py
- tests/test_truenas_garm_vm_pre_b4.py
- scripts/truenas_garm_vm_template_preflight.py
- tests/test_truenas_garm_vm_template_preflight.py

permissions:
contents: read

jobs:
vm-fixture-static:
runs-on: ubuntu-24.04
timeout-minutes: 12
steps:
- name: Checkout Agent Dispatch consumer
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
with:
persist-credentials: false
- name: Compile and adversarial source tests
run: |
set -euo pipefail
python3 -m py_compile scripts/truenas_garm_vm_pre_b4_fixture.py tests/test_truenas_garm_vm_pre_b4.py scripts/truenas_garm_vm_template_preflight.py tests/test_truenas_garm_vm_template_preflight.py
python3 -m unittest -v tests/test_truenas_garm_vm_pre_b4.py tests/test_truenas_garm_vm_template_preflight.py
- name: Export exact public GARM VM source fixture
env:
PROVIDER_REF: 5944d1dc62b4da2a247dda9754cfe674caedf5cf
run: |
set -euo pipefail
mkdir -p "$RUNNER_TEMP/garm-vm-provider" "$RUNNER_TEMP/garm-vm-evidence"
git -C "$RUNNER_TEMP/garm-vm-provider" init -q
git -C "$RUNNER_TEMP/garm-vm-provider" fetch -q --depth=1 \
https://github.com/SemperSupra/garm-provider-truenas.git "$PROVIDER_REF"
git -C "$RUNNER_TEMP/garm-vm-provider" checkout -q --detach FETCH_HEAD
test "$(git -C "$RUNNER_TEMP/garm-vm-provider" rev-parse HEAD)" = "$PROVIDER_REF"
(
cd "$RUNNER_TEMP/garm-vm-provider"
GARM_VM_FIXTURE_OUT="$RUNNER_TEMP/garm-vm-evidence/garm-provider-vm-pre-b4-fixture.json" \
GARM_VM_FIXTURE_SOURCE="$PROVIDER_REF" \
go test ./internal/vmbackend -run '^TestExportNestedVMPreB4Fixture$' -count=1
)
- name: Independently validate exact exported fixture without runtime mutation
run: |
set -euo pipefail
python3 scripts/truenas_garm_vm_pre_b4_fixture.py \
--fixture "$RUNNER_TEMP/garm-vm-evidence/garm-provider-vm-pre-b4-fixture.json" \
--producer-commit 5944d1dc62b4da2a247dda9754cfe674caedf5cf \
--out "$RUNNER_TEMP/garm-vm-evidence/consumer-static-receipt.json"
python3 - "$RUNNER_TEMP/garm-vm-evidence/consumer-static-receipt.json" <<'PY'
import json, sys
r = json.load(open(sys.argv[1]))
assert r["classification"] == "STATIC_CONTRACT_PASS"
assert r["source_only"] is True
assert r["vm_runtime_admitted"] is False
assert r["guest_boot_observed"] is False
assert r["bootstrap_consumption_observed"] is False
assert r["github_jit_exercised"] is False
assert r["zero_residue_runtime_proven"] is False
PY
- name: Retain only sanitized static consumer receipt
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
with:
name: garm-vm-pre-b4-static-receipt
path: ${{ runner.temp }}/garm-vm-evidence/consumer-static-receipt.json
if-no-files-found: warn
retention-days: 7
927 changes: 927 additions & 0 deletions .github/workflows/gha-kvm-system-rdte.yml

Large diffs are not rendered by default.

44 changes: 44 additions & 0 deletions .github/workflows/minecraft-t6-static.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Minecraft T6 consumer cheap qualification

on:
pull_request:
paths:
- ".github/workflows/minecraft-t6-static.yml"
- "scripts/truenas_middleware_minecraft_t6_probe.py"
- "tests/test_truenas_t6_minecraft_control.py"
- "scripts/gha_kvm_truenas_rdte.sh"
- ".github/workflows/gha-kvm-system-rdte.yml"
- "config/truenas-capsule-providers.json"
- "config/truenas-session-minecraft-paper-25-04-1.json"
workflow_dispatch:

permissions:
contents: read

jobs:
cheap:
runs-on: ubuntu-24.04
timeout-minutes: 5
steps:
- name: Checkout exact feature revision
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
- name: Compile product and middleware consumer
run: |
python3 -m py_compile scripts/truenas_middleware_minecraft_t6_probe.py
python3 -m py_compile scripts/truenas_middleware_ddp_probe.py
bash -n scripts/gha_kvm_truenas_rdte.sh
- name: Execute source and fail-closed negatives
run: |
python3 -m unittest -v tests/test_truenas_t6_minecraft_control.py
python3 -m unittest -v tests/test_truenas_existing_probe_capsule_executor.py
python3 -m unittest -v tests/test_truenas_session_manifest.py
- name: Verify session manifest exact contract
run: |
python3 scripts/truenas_session_manifest.py \
--manifest config/truenas-session-minecraft-paper-25-04-1.json \
--targets config/truenas-rdte-targets.json \
--providers config/truenas-capsule-providers.json
python3 scripts/truenas_single_capsule_adapter.py \
--manifest config/truenas-session-minecraft-paper-25-04-1.json \
--targets config/truenas-rdte-targets.json \
--providers config/truenas-capsule-providers.json
43 changes: 43 additions & 0 deletions .github/workflows/official-minecraft-catalog-preflight.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Read-only official Minecraft native catalog preflight
on:
pull_request:
paths:
- 'scripts/check_collage_catalog_preflight.py'
- 'tests/test_collage_catalog_preflight.py'
- '.github/workflows/official-minecraft-catalog-preflight.yml'
workflow_dispatch:
permissions:
contents: read
jobs:
actual-official-catalog:
if: github.event.repository.private == false
runs-on: ubuntu-24.04
timeout-minutes: 5
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
with:
persist-credentials: false
- name: Cheap catalog guard and 404 regression tests
run: |
set -euo pipefail
python3 -m py_compile scripts/check_collage_catalog_preflight.py
python3 -m unittest -v tests.test_collage_catalog_preflight
- name: Verify actual upstream 1.15.31 native source availability; no Paper 1.15.30 runtime claim
run: |
set -euo pipefail
python3 scripts/check_collage_catalog_preflight.py --expected 1.15.31 \
> "$RUNNER_TEMP/official-catalog-result.json"
python3 - "$RUNNER_TEMP/official-catalog-result.json" <<'PY'
import json,sys
v=json.load(open(sys.argv[1]))
assert v["classification"] == "PRE_KVM_CATALOG_VERSION_AVAILABLE"
assert v["expected_version"] == "1.15.31"
assert "1.15.31" in v["visible_versions"]
assert "1.15.30" not in v["visible_versions"]
assert v["guest_catalog_observed"] is False
assert v["live_minecraft_qualified"] is False
assert v["world_mutated"] is False
PY
- name: Report exact read-only external preflight boundary
if: always()
run: echo 'Only current native vanilla 1.15.31 source catalog availability, not retired Paper 1.15.30; no KVM, native TrueNAS App, game-world mutation or physical APPLY.' >> "$GITHUB_STEP_SUMMARY"
141 changes: 141 additions & 0 deletions .github/workflows/prep-foliorelay-t6-consumer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
name: FolioRelay T6 consumer prep

on:
pull_request:
branches:
- experiment/gha-kvm-system-rdte
paths:
- ".github/workflows/prep-foliorelay-t6-consumer.yml"
- ".github/workflows/gha-kvm-system-rdte.yml"
- "scripts/gha_kvm_truenas_rdte.sh"
- "scripts/truenas_middleware_foliorelay_t6_probe.py"
- "tests/test_truenas_t6_foliorelay_control.py"
- "tools/foliorelay-observer/**"
push:
branches:
- "prep/truenas-t6-foliorelay-v1"
paths:
- ".github/workflows/prep-foliorelay-t6-consumer.yml"
- ".github/workflows/gha-kvm-system-rdte.yml"
- "scripts/gha_kvm_truenas_rdte.sh"
- "scripts/truenas_middleware_foliorelay_t6_probe.py"
- "tests/test_truenas_t6_foliorelay_control.py"
- "tools/foliorelay-observer/**"

permissions:
contents: read

jobs:
foundry-control:
uses: SemperSupra/truenas-app-foundry/.github/workflows/export-foliorelay-t6-control.yml@81deb97185760975fd8d3162df42056c77b3c0fd
with:
foundry_ref: 81deb97185760975fd8d3162df42056c77b3c0fd
target_version: 25.10.7
permissions:
contents: read

consumer-contract:
needs: foundry-control
runs-on: ubuntu-26.04
timeout-minutes: 8
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
with:
persist-credentials: false
- name: Ensure fixture compiler dependencies
run: |
set -euo pipefail
sudo apt-get update -qq
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
cups-ipp-utils libcups2-dev build-essential
- name: Download exact Foundry FolioRelay control
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
with:
name: foliorelay-t6-control
path: ${{ runner.temp }}/foliorelay-control
- name: Smoke minimal static independent DNS-SD observer
shell: bash
run: |
set -euo pipefail
carrier='docker.io/library/hello-world@sha256:5e23090353324d887c48ad5e5c56d294eab81588df9605b07d1afe895f9cc8f8'
work="$RUNNER_TEMP/foliorelay-observer-smoke"
rm -rf "$work"
mkdir -p "$work"
command -v go >/dev/null
GO111MODULE=off go test ./tools/foliorelay-observer
GO111MODULE=off CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \
go build -trimpath -ldflags='-s -w -buildid=' \
-o "$work/foliorelay-observer" ./tools/foliorelay-observer
test -s "$work/foliorelay-observer"
test "$(stat -c%s "$work/foliorelay-observer")" -le 6291456
readelf -l "$work/foliorelay-observer" >"$RUNNER_TEMP/foliorelay-observer-elf.txt"
if grep -q 'INTERP' "$RUNNER_TEMP/foliorelay-observer-elf.txt"; then
echo "observer binary unexpectedly has a dynamic interpreter" >&2
exit 1
fi
port="$(python3 - <<'PY'
import socket
s=socket.socket(); s.bind(("127.0.0.1",0)); print(s.getsockname()[1]); s.close()
PY
)"
docker pull "$carrier" >/dev/null
test "$(docker image inspect "$carrier" --format '{{.Size}}')" -le 1048576
docker rm -f foliorelay-observer-smoke >/dev/null 2>&1 || true
trap 'docker rm -f foliorelay-observer-smoke >/dev/null 2>&1 || true' EXIT
docker run -d --name foliorelay-observer-smoke \
--network host \
--read-only \
--user 65534:65534 \
--cap-drop ALL \
--security-opt no-new-privileges:true \
--mount "type=bind,src=$work/foliorelay-observer,dst=/observer/foliorelay-observer,readonly" \
--entrypoint /observer/foliorelay-observer \
"$carrier" \
--uuid urn:uuid:01234567-89ab-4def-8123-456789abcdef \
--txt-uuid 01234567-89ab-4def-8123-456789abcdef \
--expected-host intentionally-absent.local \
--expected-ipp-port 8634 \
--port "$port" \
--seconds 1 >/dev/null
python3 - "$port" <<'PY'
import json, sys, time, urllib.request
url=f"http://127.0.0.1:{sys.argv[1]}/"
deadline=time.monotonic()+15
last=None
while time.monotonic()<deadline:
try:
with urllib.request.urlopen(url,timeout=2) as r:
last=json.load(r)
if last.get("status")=="error":
break
except Exception:
pass
time.sleep(.5)
if not isinstance(last,dict) or last.get("status")!="error":
raise SystemExit(f"observer did not expose bounded error result: {last!r}")
if "no qualifying _universal FolioRelay mDNS response" not in last.get("error",""):
raise SystemExit(f"unexpected observer error: {last!r}")
PY
test "$(docker inspect -f '{{.State.Running}}' foliorelay-observer-smoke)" = true
- name: Verify producer-consumer binding
shell: bash
run: |
set -euo pipefail
root="$RUNNER_TEMP/foliorelay-control"
test -s "$root/control.json"
test -s "$root/compose.json"
jq -e '
.schema == "semper-supra.foliorelay-truenas-t6-control/1" and
.foundry_ref == "81deb97185760975fd8d3162df42056c77b3c0fd" and
.candidate.truenas_version == "25.10.7" and
.candidate.control_image == "ghcr.io/sempersupra/foliorelay-control@sha256:d0ba6d1efbed0d9f84b20d374eeb44ee28ab0874a683396e628850f159193cf5" and
.candidate.cups_image == "ghcr.io/sempersupra/foliorelay-cups@sha256:0997ad2054ca5e57f34291372aed55f549eee9ff201f171b430436b0655c0814" and
.secrets_captured == false
' "$root/control.json" >/dev/null
jq -e '
(.services | keys | sort) == ["control","cups","discovery"] and
.services.discovery.network_mode == "host"
' "$root/compose.json" >/dev/null
python3 -m unittest -v tests/test_truenas_t6_foliorelay_control.py
bash -n scripts/gha_kvm_truenas_rdte.sh
python3 -m py_compile scripts/truenas_middleware_foliorelay_t6_probe.py
Loading
Loading