Repository navigation
[TS PBT] Honor caller cutoff in campaign-file - #615
Open
CaelmBleidd wants to merge 1 commit into
Open
CaelmBleidd wants to merge 1 commit into
CaelmBleidd wants to merge 1 commit into
Conversation
This was referenced Oct 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A caller currently grants
campaign-filea relative timeout that starts again after JVM startup and request decoding. The campaign can therefore consume time reserved for returning its artifact, and the caller may kill it before publication.Add optional
externalDeadlineEpochMillisand nonnegativepublicationReserveMillisfields to the file request. The runner converts the epoch cutoff once into the existing monotonic deadline, subtracts the publication reserve inside that cutoff, and caps execution by the original request timeout. The original configuration, PBT allocation and property remain intact. An already exhausted cutoff returnsDEADLINEatPREPARATIONwithout source capture or engine startup. Existing callers keep their current public API and timer behavior.The change also avoids creating a new positive PBT timer when the shared deadline has already expired. The file-before-stdout publication and stdout fallback from #614 are retained.
Depends on #614 (
4c37ea13cd8d888e35db79a90a2c85c96315d63f). CLI part of #613; the experiment caller will pass its existing absolute cutoff and an explicit 1000 ms publication reserve in a separate PR. This does not complete #613 by itself.Validation: 21 focused CLI/campaign tests passed, including expired cutoff with unchanged controls, extreme epoch/reserve arithmetic, original-timeout cap, shortened PBT allocation, and both publication regressions. Both new CLI regressions failed on #614 before implementation. Strict Detekt main/test reports contain zero findings;
git diff --checkpassed.Combined functional validation used a new isolated assembly with the caller fix from #616 and the existing experiment functionality: 28 Kotlin checks and 27 Python checks passed. One declared 30-second SinglyLinkedList wide / seed 16061113 / SYMBOLIC_ONLY fixture included a 2-second launcher delay inside the same cutoff. It saved an 83,851-byte
DEADLINE/CONFIRMATIONartifact before the outer cutoff, with no outer kill; accountable elapsed time was 20,790 ms. The original 18,745 ms configuration was retained and runner elapsed time was 15,199 ms. Incomplete native replay remained explicit (66 pending inputs and one timed-out receipt); coverage and primary credit were not awarded. This functional fixture is not comparative evidence, and the frozen scientific campaign was preserved.The publication reserve is explicit policy, not a hard real-time guarantee for encoding or filesystem writes. Existing synchronous IR loading, source capture and cleanup remain cooperative; local child-deadline snapshots are unchanged. No comparative experiment or frozen evidence was rerun or edited.