Repository navigation
fix(runner): retain independent execution and cleanup facts - #111
Merged
Merged
Conversation
dnlrsls
marked this pull request as ready for review
October 18, 2026 18:56
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.
Summary
Related to #9. One root-correction source unit: 9 files, 326 additions / 15 deletions = 341 authored changed lines. Exact reviewed head
21b834723d68433a6beabc22d2779d785767f07a, parent595ba91314207c08f6dbe29c8b514a0110d978f0, treeeae1499f880b9f4fddfc55ca56f6fcf625ec98f6. Target main isc4dce68b9fc867291ba5fe7ca9bbbd6d1242148a, with the same production baseline tree as595.This is the single producer-to-report correction, not publication of the earlier local
0b364c8cdiagnostic patch. That separate branch remains unchanged and unpublished.Root cause and correction
The shared runner selected one legacy
Reason: unverified cleanup could overwrite the primary execution failure before wrappers saw it.CleanupVerified=falsealso occurred on returns before Start; it did not prove a removal attempt or leaked container. Incrementally formatting the surviving reason could not recover discarded facts.runner.Result, retain optional internal facts: Start call requested, closed primary execution cause, and cleanup attempted. Derive cleanup result from the existing verified-absence flag instead of inventing a parallel authority.The historical runs 39110730772, 39144702523 and 39148391145 remain FAILED/UNVERIFIABLE. Their physical runtime causes cannot be reconstructed from the retained aggregate reports. This fixes diagnostic fact loss, not a demonstrated Docker/Node defect or real sensitivity triad.
Observed local proof
Runner.Executerather than returning a pre-shaped Result. Cases cover pre-start failure with no Start/Remove, start failure with verified cleanup, simultaneous start/cleanup failure retaining both, and cleanup failure after a successful Start return. Source/cancel/expiry priorities retain facts without promoting evidence. Legacy Result JSON is byte-exact; unknown-code privacy passes.executecall with new-fact input and absent GitHub context returns the same exit2/empty stdout/fixed stderr on base and new code, leaving input/counter hashes unchanged. No target files were accessed. Protected inputs, dependencies, manifest, original fixture counter and two doc links passed.Native assessment: HIGH via security item2, unassessable because private untracked notes prevent forming a candidate, candidate null, RDD off, outcome unknown. Not native approval. Its required independent verification was fulfilled. Risk: items2and3 (shared runner contract/security-sensitive disclosure).
Actual PR and NEW post-merge main Go CI links are recorded below. They verify owned Go source and contracts, not the real candidate runtime or security.
Scope and delivery
Owner separately authorized this exact source publication/integration only: one341-line PR, normal merge commit, exact reviewed head/tree, source branch retained, then fresh three-host main Go CI. Keep old0b local branch unchanged; no force/rebase/squash/delete, admin bypass, local main reset or private
odd//.git/publication.Excluded: another protected plan, manual lint dispatch, candidate Node/npm/ESLint/actual launcher/Docker/loader/image/payload download/extraction/preparation, Environment approval/settings, #9 closure, version tag or release. No candidate was executed to implement or publish this unit. Future runtime consent is separate and exact-plan-specific; past approvals apply only to completed attempts. Full-MVP0.1.0 is not claimed ready. No automatic return to a per-message-patch/live-retry loop.
Observed owner integration
Maintainer merged as
ba0274cb941a946ecaceea888f6e2d4e0d06f347, exact parents [c4dce68b9fc867291ba5fe7ca9bbbd6d1242148a,21b834723d68433a6beabc22d2779d785767f07a], exact reviewed treeeae1499f880b9f4fddfc55ca56f6fcf625ec98f6. Source branchfix/lint-failure-factsretained unchanged; old0b local branch remains intact/unpublished. No agent merge/ready command was invoked or replayed.All six actual Go host jobs passed on their first attempt. PR jobs completed by18:56:06Z; maintainer merge occurred18:56:18Z. The original observer exited1 only at its later OPEN/DRAFT PR-state predicate because the maintainer had already merged; the successful Go jobs were not rerun. That failure was retained; separate read-only owner-merge/tree/parent/source checks and new-main CI established the actual outcome. These source results do not convert earlier failed candidate attempts into passes or authorize a new protected plan, target runtime, #9 closure or release.