Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
46 changes: 46 additions & 0 deletions .github/workflows/exp64-evidence.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: exp64-evidence
on:
pull_request:
push:
branches: [main]
jobs:
replay-and-real-package:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 10.9.0
- uses: actions/setup-node@v4
with:
node-version: '22'
cache: npm
cache-dependency-path: experiments/64-merged-rule-ownership/ci/package-lock.json
- name: Install portable core/experiment toolchain
# Older experiments retain machine-local file deps; do not rewrite unrelated packages.
run: |
npm ci --prefix experiments/64-merged-rule-ownership/ci --workspaces=false
ln -s experiments/64-merged-rule-ownership/ci/node_modules node_modules
mkdir -p node_modules/@swarmlab
ln -s "$GITHUB_WORKSPACE/core" node_modules/@swarmlab/core
- name: Build and typecheck core plus new experiment
run: |
node_modules/.bin/tsc -b core experiments/64-merged-rule-ownership
node_modules/.bin/tsc -b --force core experiments/64-merged-rule-ownership
- name: Verify frozen corpus and exact content-addressed experiment receipts
run: npm run verify:evidence && node experiments/64-merged-rule-ownership/verify-receipts.mjs
- name: Checkout exact candidate (not moving main)
uses: actions/checkout@v4
with:
repository: heybeaux/aegis
ref: edb9f557fc776b5710360a453f0df0146f3b977b
path: .aegis-candidate
- name: Build real Aegis
working-directory: .aegis-candidate
run: pnpm install --frozen-lockfile && pnpm --filter @heybeaux/lattice-aegis build
- name: Execute same frozen experiment and inspect rows/metrics/actual source-dist receipts
run: |
AEGIS_REPO="$GITHUB_WORKSPACE/.aegis-candidate" node experiments/64-merged-rule-ownership/dist/main.js > "$RUNNER_TEMP/exp64.log"
cat "$RUNNER_TEMP/exp64.log"
node experiments/64-merged-rule-ownership/verify-receipts.mjs --run "$RUNNER_TEMP/exp64.log"
70 changes: 70 additions & 0 deletions CLAIMS.json
Original file line number Diff line number Diff line change
Expand Up @@ -6333,5 +6333,75 @@
"evidenceStatus": "verified",
"seedSetId": "async-evaluator-config-integrity-v1",
"notes": "Pre-registration b0378e0 BEFORE implementation/output; 21 frozen scenarios. Current-main baseline repeated with identical 63 arm scenario rows, same harness hash candidate; full 68-event replay equality. Two diagnostic traces had fixture-only I/O-accounting error; preserved locally but excluded from claims. Thresholds/scenarios unchanged. Exp57/RT47 remains prior unlanded work, NOT novelty tonight. No threshold tuned; holdout reserved unused. Authentic plain-data host, no post-return/ABA/getter/proxy/latency claims."
},
{
"id": "RT-54",
"claim": "Mutable caller recipes must not silently edit a constructed effective cascade or receive consumer edits through merged rule aliases.",
"experiment": "experiments/64-merged-rule-ownership",
"spec": "specs/70-merged-rule-ownership.md",
"runIds": [
"mro-mv96376j",
"mro-mv9637ag",
"mro-mv966i1f"
],
"tracePaths": [
"experiments/64-merged-rule-ownership/runs/mro-mv96376j.jsonl",
"experiments/64-merged-rule-ownership/runs/mro-mv9637ag.jsonl",
"experiments/64-merged-rule-ownership/runs/mro-mv966i1f.jsonl"
],
"scoreFields": [
"experiments/64-merged-rule-ownership/runs/mro-mv96376j.jsonl#last.detachedControlAccuracy",
"experiments/64-merged-rule-ownership/runs/mro-mv96376j.jsonl#last.aegisProducerDriftRate",
"experiments/64-merged-rule-ownership/runs/mro-mv96376j.jsonl#last.aegisUnsafeAllowRate",
"experiments/64-merged-rule-ownership/runs/mro-mv96376j.jsonl#last.aegisResolutionAccuracy",
"experiments/64-merged-rule-ownership/runs/mro-mv96376j.jsonl#last.aegisConsumerIsolation",
"experiments/64-merged-rule-ownership/runs/mro-mv96376j.jsonl#last.aegisControlAccuracy",
"experiments/64-merged-rule-ownership/runs/mro-mv96376j.jsonl#last.aegisCallerOwnership",
"experiments/64-merged-rule-ownership/runs/mro-mv9637ag.jsonl#last.detachedControlAccuracy",
"experiments/64-merged-rule-ownership/runs/mro-mv9637ag.jsonl#last.aegisProducerDriftRate",
"experiments/64-merged-rule-ownership/runs/mro-mv9637ag.jsonl#last.aegisUnsafeAllowRate",
"experiments/64-merged-rule-ownership/runs/mro-mv9637ag.jsonl#last.aegisResolutionAccuracy",
"experiments/64-merged-rule-ownership/runs/mro-mv9637ag.jsonl#last.aegisConsumerIsolation",
"experiments/64-merged-rule-ownership/runs/mro-mv9637ag.jsonl#last.aegisControlAccuracy",
"experiments/64-merged-rule-ownership/runs/mro-mv9637ag.jsonl#last.aegisCallerOwnership",
"experiments/64-merged-rule-ownership/runs/mro-mv966i1f.jsonl#last.detachedControlAccuracy",
"experiments/64-merged-rule-ownership/runs/mro-mv966i1f.jsonl#last.aegisProducerDriftRate",
"experiments/64-merged-rule-ownership/runs/mro-mv966i1f.jsonl#last.aegisUnsafeAllowRate",
"experiments/64-merged-rule-ownership/runs/mro-mv966i1f.jsonl#last.aegisResolutionAccuracy",
"experiments/64-merged-rule-ownership/runs/mro-mv966i1f.jsonl#last.aegisConsumerIsolation",
"experiments/64-merged-rule-ownership/runs/mro-mv966i1f.jsonl#last.aegisControlAccuracy",
"experiments/64-merged-rule-ownership/runs/mro-mv966i1f.jsonl#last.aegisCallerOwnership"
],
"expectedValues": {
"experiments/64-merged-rule-ownership/runs/mro-mv96376j.jsonl#last.detachedControlAccuracy": 1,
"experiments/64-merged-rule-ownership/runs/mro-mv96376j.jsonl#last.aegisProducerDriftRate": 0.8888888888888888,
"experiments/64-merged-rule-ownership/runs/mro-mv96376j.jsonl#last.aegisUnsafeAllowRate": 0.8888888888888888,
"experiments/64-merged-rule-ownership/runs/mro-mv96376j.jsonl#last.aegisResolutionAccuracy": 0.38095238095238093,
"experiments/64-merged-rule-ownership/runs/mro-mv96376j.jsonl#last.aegisConsumerIsolation": 0,
"experiments/64-merged-rule-ownership/runs/mro-mv96376j.jsonl#last.aegisControlAccuracy": 0.7777777777777778,
"experiments/64-merged-rule-ownership/runs/mro-mv96376j.jsonl#last.aegisCallerOwnership": 1,
"experiments/64-merged-rule-ownership/runs/mro-mv9637ag.jsonl#last.detachedControlAccuracy": 1,
"experiments/64-merged-rule-ownership/runs/mro-mv9637ag.jsonl#last.aegisProducerDriftRate": 0.8888888888888888,
"experiments/64-merged-rule-ownership/runs/mro-mv9637ag.jsonl#last.aegisUnsafeAllowRate": 0.8888888888888888,
"experiments/64-merged-rule-ownership/runs/mro-mv9637ag.jsonl#last.aegisResolutionAccuracy": 0.38095238095238093,
"experiments/64-merged-rule-ownership/runs/mro-mv9637ag.jsonl#last.aegisConsumerIsolation": 0,
"experiments/64-merged-rule-ownership/runs/mro-mv9637ag.jsonl#last.aegisControlAccuracy": 0.7777777777777778,
"experiments/64-merged-rule-ownership/runs/mro-mv9637ag.jsonl#last.aegisCallerOwnership": 1,
"experiments/64-merged-rule-ownership/runs/mro-mv966i1f.jsonl#last.detachedControlAccuracy": 1,
"experiments/64-merged-rule-ownership/runs/mro-mv966i1f.jsonl#last.aegisProducerDriftRate": 0,
"experiments/64-merged-rule-ownership/runs/mro-mv966i1f.jsonl#last.aegisUnsafeAllowRate": 0,
"experiments/64-merged-rule-ownership/runs/mro-mv966i1f.jsonl#last.aegisResolutionAccuracy": 1,
"experiments/64-merged-rule-ownership/runs/mro-mv966i1f.jsonl#last.aegisConsumerIsolation": 1,
"experiments/64-merged-rule-ownership/runs/mro-mv966i1f.jsonl#last.aegisControlAccuracy": 1,
"experiments/64-merged-rule-ownership/runs/mro-mv966i1f.jsonl#last.aegisCallerOwnership": 1
},
"reproductionCommand": "npm run build && AEGIS_REPO=/path/to/pinned/real/aegis node experiments/64-merged-rule-ownership/dist/main.js",
"stackRecommendation": "Each returned effective Rule owns a structured clone; precedence, warnings and mutable output contract unchanged.",
"stackReposAndPRs": [
"https://github.com/heybeaux/aegis/pull/70",
"https://github.com/heybeaux/swarmlab/pull/53"
],
"evidenceStatus": "verified",
"notes": "Unique synchronous cascade value-ownership boundary. Baseline origin/main4be84ed repeated identical rows, 8/9 unsafe allow; f274278 unchanged-harness21/21 green. Holdout unused (no tuning), raw traces/package manifests preserved. Candidate not remotely merged; RT50\u201353 pending and not imported. Direct result mutation/loadPack aliasing unproven by design."
}
]
49 changes: 49 additions & 0 deletions JOURNAL.md
Original file line number Diff line number Diff line change
Expand Up @@ -307,3 +307,52 @@ Spec64 b0378e0; 21 frozen scenarios, seed async-evaluator-config-integrity-v1. R
Local regression:1087 Aegis tests, gate47/47; SwarmLab46 claims/96 traces/881 assertions; exp55/56 green regression only. Orphaned exp57 preserved, not landed or independently certified. RT47 rebase must reconcile trusted clock function capture with RT48 plain-policy snapshot; combined behavior unproven.

Linked PRs: https://github.com/heybeaux/aegis/pull/63 (Aegis), https://github.com/heybeaux/swarmlab/pull/46 (SwarmLab). Local green; CI status inspected in tonight's pipeline ledger before any merge.

## RT54 — Merged rule reference ownership (exp64 / Spec70, 2026-10-14)

New pre-registered question: can caller-owned rule recipes edit already-constructed
cascade policy between synchronous merge and compilation? Pre-registration `4e5c4c8`;
21 frozen scenarios, no tuning or LLM judge. Distinct from in-flight RT48, receipt
metadata RT49, defaults RT51, compiled-cache RT52 and overlay consent RT53.

Real Aegis `4be84ed` baseline `mro-mv96376j` / `mro-mv9637ag` identical rows:
producer drift **8/9**, unsafe allow **8/9**, exact resolution **8/21**;
consumer isolation **0**, compatibility controls **7/9**, caller ownership **1**.
Independent detached-boundary diagnostic **21/21** on both baselines; it is a
control, not replacement Aegis. These red traces remain committed.

Runtime patch `f27427879984856bad36731788376dbc74702aaa` clones each effective Rule independently at
merge return. Separate cloning is important: cloning the whole array preserves
shared nested identities across distinct rule ids. Same unchanged harness/seeds,
`mro-mv966i1f`: producer drift **0/9**, unsafe allow **0/9**, resolution **21/21**,
all secondary metrics **1**,46-event full replay; manifests pin real package.
Focused frozen tests **16 red/4 pass ->20 green**. Thresholds unchanged.

Host owns provenance, deliberate policy edits and reloading; result remains
editable. Direct loadPack binding, live immutability/atomic execution, getters or
proxies are not claimed. Stored scores are historical regression evidence,
not runtime verification. Full regression and remote CI/PR status will be recorded
below when actually observed. Prior exp60–63 candidates remain separate/unmerged.

### Regression verification (not new evidence)
Full Aegis release:check at `edb9f55`: build/typecheck **1145/1145 tests**
(628core,152Aegis,22collect,86label,203hook,54bench), static measured evidence **50/50**.
Initial evidence catalogue update exposed one stale expected report banner, not a
runtime regression: corrected RT49->RT54 expectation; preserved red log, full rerun
green. SwarmLab build/typecheck and verify:evidence **49claims105traces980assertions**.
Fresh same-harness `mro-mv96dcb4` on clean final candidate **21/21**, actual source/dist
manifest audited. Frozen red+green46-event receipts verified; no thresholds moved.
Baseline frozen/remerge compatibility controls fail on real old Aegis7/9, whereas
the detached diagnostic is21/21, distinguishing general ownership gap from fixture
failure. Holdout remains unused. No source .acr changes; Territory not refreshed.

### Linked PRs and observed GitHub CI
Aegis [PR70](https://github.com/heybeaux/aegis/pull/70), candidate
`edb9f557fc776b5710360a453f0df0146f3b977b`: release-check
[38694629492](https://github.com/heybeaux/aegis/actions/runs/38694629492) **SUCCESS**.
SwarmLab [PR53](https://github.com/heybeaux/swarmlab/pull/53), evidence
`b973bd8db231b4168191a773f9f0e06f463192a2`: portable replay + pinned real-package
[38694637393](https://github.com/heybeaux/swarmlab/actions/runs/38694637393) **SUCCESS**.
Both inspected CLEAN/MERGEABLE; CodeRabbit success is review-skipped, **not review
approval**. No protections bypassed. Final documentation commit will get its own CI;
merge/main SHA/status recorded in the nightly ledger, not inferred here.
37 changes: 37 additions & 0 deletions SYNTHESIS.md
Original file line number Diff line number Diff line change
Expand Up @@ -1505,3 +1505,40 @@ function overrides and post-return changes unproven. Earlier exp57/RT47 is unlan
not tonight's novelty; this independent origin/main patch changes no elapsed-clock contract.
Two initial diagnostic traces had oracle-only I/O counter mismatch (real output unchanged);
corrected before admitting repeated baseline, preserved but not claimed. Thresholds never moved.

## RT54 — Merged rule reference ownership (exp64 / Spec70, 2026-10-14)

New pre-registered question: can caller-owned rule recipes edit already-constructed
cascade policy between synchronous merge and compilation? Pre-registration `4e5c4c8`;
21 frozen scenarios, no tuning or LLM judge. Distinct from in-flight RT48, receipt
metadata RT49, defaults RT51, compiled-cache RT52 and overlay consent RT53.

Real Aegis `4be84ed` baseline `mro-mv96376j` / `mro-mv9637ag` identical rows:
producer drift **8/9**, unsafe allow **8/9**, exact resolution **8/21**;
consumer isolation **0**, compatibility controls **7/9**, caller ownership **1**.
Independent detached-boundary diagnostic **21/21** on both baselines; it is a
control, not replacement Aegis. These red traces remain committed.

Runtime patch `f27427879984856bad36731788376dbc74702aaa` clones each effective Rule independently at
merge return. Separate cloning is important: cloning the whole array preserves
shared nested identities across distinct rule ids. Same unchanged harness/seeds,
`mro-mv966i1f`: producer drift **0/9**, unsafe allow **0/9**, resolution **21/21**,
all secondary metrics **1**,46-event full replay; manifests pin real package.
Focused frozen tests **16 red/4 pass ->20 green**. Thresholds unchanged.

Host owns provenance, deliberate policy edits and reloading; result remains
editable. Direct loadPack binding, live immutability/atomic execution, getters or
proxies are not claimed. Stored scores are historical regression evidence,
not runtime verification. Full regression and remote CI/PR status will be recorded
below when actually observed. Prior exp60–63 candidates remain separate/unmerged.

### Linked PRs and observed GitHub CI
Aegis [PR70](https://github.com/heybeaux/aegis/pull/70), candidate
`edb9f557fc776b5710360a453f0df0146f3b977b`: release-check
[38694629492](https://github.com/heybeaux/aegis/actions/runs/38694629492) **SUCCESS**.
SwarmLab [PR53](https://github.com/heybeaux/swarmlab/pull/53), evidence
`b973bd8db231b4168191a773f9f0e06f463192a2`: portable replay + pinned real-package
[38694637393](https://github.com/heybeaux/swarmlab/actions/runs/38694637393) **SUCCESS**.
Both inspected CLEAN/MERGEABLE; CodeRabbit success is review-skipped, **not review
approval**. No protections bypassed. Final documentation commit will get its own CI;
merge/main SHA/status recorded in the nightly ledger, not inferred here.
49 changes: 49 additions & 0 deletions docs/EVIDENCE-LEDGER.md
Original file line number Diff line number Diff line change
Expand Up @@ -197,3 +197,52 @@ harnesses each replayed against the combined built Aegis package: 65/65 and 68/6
respectively, with unsafe allow rate 0 and resolution accuracy 1 in both. Aegis release:check
passed with 49/49 evidence mappings and combined clock/config unit tests. These integration
checks do not expand the original experiment scope or certify post-return atomicity.

## RT54 — Merged rule reference ownership (exp64 / Spec70, 2026-10-14)

New pre-registered question: can caller-owned rule recipes edit already-constructed
cascade policy between synchronous merge and compilation? Pre-registration `4e5c4c8`;
21 frozen scenarios, no tuning or LLM judge. Distinct from in-flight RT48, receipt
metadata RT49, defaults RT51, compiled-cache RT52 and overlay consent RT53.

Real Aegis `4be84ed` baseline `mro-mv96376j` / `mro-mv9637ag` identical rows:
producer drift **8/9**, unsafe allow **8/9**, exact resolution **8/21**;
consumer isolation **0**, compatibility controls **7/9**, caller ownership **1**.
Independent detached-boundary diagnostic **21/21** on both baselines; it is a
control, not replacement Aegis. These red traces remain committed.

Runtime patch `f27427879984856bad36731788376dbc74702aaa` clones each effective Rule independently at
merge return. Separate cloning is important: cloning the whole array preserves
shared nested identities across distinct rule ids. Same unchanged harness/seeds,
`mro-mv966i1f`: producer drift **0/9**, unsafe allow **0/9**, resolution **21/21**,
all secondary metrics **1**,46-event full replay; manifests pin real package.
Focused frozen tests **16 red/4 pass ->20 green**. Thresholds unchanged.

Host owns provenance, deliberate policy edits and reloading; result remains
editable. Direct loadPack binding, live immutability/atomic execution, getters or
proxies are not claimed. Stored scores are historical regression evidence,
not runtime verification. Full regression and remote CI/PR status will be recorded
below when actually observed. Prior exp60–63 candidates remain separate/unmerged.

### Regression verification (not new evidence)
Full Aegis release:check at `edb9f55`: build/typecheck **1145/1145 tests**
(628core,152Aegis,22collect,86label,203hook,54bench), static measured evidence **50/50**.
Initial evidence catalogue update exposed one stale expected report banner, not a
runtime regression: corrected RT49->RT54 expectation; preserved red log, full rerun
green. SwarmLab build/typecheck and verify:evidence **49claims105traces980assertions**.
Fresh same-harness `mro-mv96dcb4` on clean final candidate **21/21**, actual source/dist
manifest audited. Frozen red+green46-event receipts verified; no thresholds moved.
Baseline frozen/remerge compatibility controls fail on real old Aegis7/9, whereas
the detached diagnostic is21/21, distinguishing general ownership gap from fixture
failure. Holdout remains unused. No source .acr changes; Territory not refreshed.

### Linked PRs and observed GitHub CI
Aegis [PR70](https://github.com/heybeaux/aegis/pull/70), candidate
`edb9f557fc776b5710360a453f0df0146f3b977b`: release-check
[38694629492](https://github.com/heybeaux/aegis/actions/runs/38694629492) **SUCCESS**.
SwarmLab [PR53](https://github.com/heybeaux/swarmlab/pull/53), evidence
`b973bd8db231b4168191a773f9f0e06f463192a2`: portable replay + pinned real-package
[38694637393](https://github.com/heybeaux/swarmlab/actions/runs/38694637393) **SUCCESS**.
Both inspected CLEAN/MERGEABLE; CodeRabbit success is review-skipped, **not review
approval**. No protections bypassed. Final documentation commit will get its own CI;
merge/main SHA/status recorded in the nightly ledger, not inferred here.
Loading
Loading