A public, secret-free execution laboratory for disposable experiments triggered through the existing bounded GitHub actuator.
ChatGPT
-> Base44 GitHubCommand
-> OCI GitHub actuator worker
-> allowlisted workflow_dispatch
-> GitHub-hosted runner
-> public result / replay / conflict receipt
-> GitHub read connector
The lab is intentionally separate from production repositories. Do not add production secrets or deployment authority here.
The allowlisted workflow is .github/workflows/actuator-v3-acceptance.yml.
Inputs:
actuator_command_id: durable invocation identitymarker: harmless typed experiment input used by the current canary harness
Semantics:
- first use of an invocation ID + input -> execute and write
results/<id>.json - same invocation ID + same input -> do not execute again; write
replays/<id>.jsonwithRECONCILED - same invocation ID + different input -> preserve the canonical result, write
conflicts/<id>.json, and fail withIDEMPOTENCY_CONFLICT - GitHub concurrency serializes runs sharing the same invocation ID
- end-to-end observed run:
32624825545-> success - replay-fence primary run:
32624913343-> success - replay-fence replay run:
32624934290-> reconciled - input-fence canonical run:
32625366707-> success - conflicting-input run:
32625385775-> failed closed withIDEMPOTENCY_CONFLICT - same-input replay after conflict:
32625418431-> reconciled and successful
The private actuator acceptance repository was restored after the canary; its temporary workflow was removed.
dispatch_workflowcurrently accepts duplicate Base44 rows with the samecommand_idand dispatches another GitHub run. Correctness is therefore fenced in this lab workflow; the relay itself is still at-least-once at the run-allocation layer.- The relay currently discards GitHub's workflow run ID in its Base44 receipt. The lab writes GitHub's own
github.run_idinto result/replay/conflict receipts so the independent GitHub read plane can retrieve jobs and logs. - A malformed workflow currently consumes the relay retry budget and terminates as
MAX_ATTEMPTS_EXCEEDEDrather than failing fast on a permanent workflow-definition error.
Patch the existing relay, not a new actuator:
- enforce atomic admission uniqueness for
command_id - preserve the GitHub run ID returned/observed by dispatch
- classify permanent dispatch errors separately from transient/ambiguous failures
Until then, this repository is suitable for secret-free experimental workloads whose actual effect is fenced by invocation ID and input hash.