v4.1.0-rc4 — Receipt Evidence-Gating Fix
Pre-releasev4.1.0-rc4 — Receipt Evidence-Gating Fix
RC4 fixes a Delegation Receipt reason-classification bug discovered during RC3 public-readiness validation.
The runtime delegation architecture is unchanged.
What was wrong
RC3 could incorrectly report:
Sol/Luna: Sol-only · Luna unavailable
even when the current task had observed no Luna availability failure.
The real reproduced case was:
selector invoked = NO
delegation attempted = NO
availability evidence = NONE
The correct classification was:
Sol/Luna: Sol-only · no independent bounded work
What RC4 changes
Luna unavailable is now evidence-gated.
It may be emitted only when the current task has already observed parent-visible evidence that Luna is genuinely unavailable through the normal execution path.
Examples include:
- selector fail-closed with no valid Luna profile
- selected native Luna agent unavailable
- relevant Luna capability unavailable
- a real native agent availability/spawn failure
The key rule is:
NO DELEGATION
!=
LUNA UNAVAILABLE
Luna unavailable is never the default Sol-only fallback.
Decision-neutral Receipt
Receipt generation remains descriptive only.
It must not create evidence by causing an additional:
- selector invocation
- capability probe
- tool call
- child creation
- network request
- state write
- telemetry write
- repository write
If availability evidence does not already exist, the Receipt must select another current-task-supported Sol-only reason.
Runtime architecture unchanged
RC4 does not change:
- the delegation threshold
- Daily Selector behavior
- ModelDial API v1
- full-snapshot fallback
- LKG behavior
- five Luna effort profiles
ultraexclusion- max direct child concurrency
- native leaf behavior
- Task Contract
- Context Firewall
- Sol Acceptance
- project/global Daily authority
- state schemas
The selector source remains unchanged from RC3.
Source validation
RC4 source Commit A:
95cfd53200a3fc53b50a48fe7ab251dcc6d5e00b
Validation:
- Windows CI: PASS
- Ubuntu CI: PASS
- macOS CI: PASS
- Full suite:
114/114 PASS
Final source/docs pin commit:
d17bea49fdb0710bb2101f1577045bed2477ff79
Validation:
- Windows CI: PASS
- Ubuntu CI: PASS
- macOS CI: PASS
Real RC3 → RC4 upgrade
PASS.
Observed:
result = UPGRADED
effective changes = 2
Only:
- Global AGENTS managed block
- install manifest metadata / owned hash
changed.
The following remained unchanged:
- Daily Selector
- five Luna agent definitions
- Global config
- Daily Profile
- LKG
Second apply:
IDEMPOTENT_PASS
Backup verification and rollback readiness passed.
Runtime acceptance
Case A — Sol reasoning
PASS.
A reasoning/architecture task remained with Sol and was classified as:
Sol/Luna: Sol-only · reasoning/architecture task
Case B — Native delegation
PASS.
Observed:
selected role = luna_max
direct children = 3
model = gpt-5.6-luna ×3
effort = max ×3
parallel = verified
grandchildren = 0
Final Receipt:
Sol/Luna: delegated · luna_max ×3 · parallel
Sol independently verified the delegated findings and retained final acceptance authority.
Case C — No independent bounded work
PASS.
This is the direct regression test for the RC3 bug.
Observed:
selector invoked = NO
delegation attempted = NO
child count = 0
availability failure = NONE
availability evidence = NONE
Correct final Receipt:
Sol/Luna: Sol-only · no independent bounded work
No additional selector, probe, tool, or child was created for Receipt classification.
Case D — Controlled genuine unavailability
PASS.
An isolated temporary environment simulated a normal delegation path whose selector returned:
NO_LUNA_PROFILE_AVAILABLE
Observed:
delegation otherwise appropriate = YES
normal-path selector calls = 1
availability failure = YES
parent-visible evidence = PRESENT
Under those conditions:
Luna unavailable = ALLOWED
Negative control:
availability evidence = NONE
Luna unavailable = FORBIDDEN
Receipt classification itself caused no additional selector, probe, tool, child, network request, or state write.
The real Codex home was not modified.
RC4 acceptance matrix
Case A = PASS
Case B = PASS
Case C = PASS
Case D = PASS
Result:
RC4_RECEIPT_EVIDENCE_GATE_FIX = CLOSED
RC4_RUNTIME_ACCEPTANCE = PASS
Installation
New or upgrading users should follow the immutable RC4 setup contract pinned by the repository README.
The installer preserves unrelated user configuration, performs ownership validation, uses transactional backups, and fails closed on ownership conflicts.
Existing RC3 users can upgrade to RC4 through the same existing-v4 installer path.
Release status
This is a prerelease.
v4.0.0 remains the current stable release.
Deferred pre-stable hardening
A selector URL exception-normalization finding remains intentionally deferred to pre-stable hardening.
It is not part of RC4:
SELECTOR_URL_EXCEPTION_HARDENING = DEFERRED_TO_PRE_STABLE
RC4 does not modify src/selector.py.
Community project
This is an independent community project and is not affiliated with, sponsored by, or endorsed by OpenAI or ModelDial.