fix: align broker acquirejob payload with official runner

Merged
BN
3mo ago
+967-410

Aligns aksh broker job payload serialization and server metadata with actions/runner v2.335.1. Adds strict scenario replay and schema validation for scenario 07. Verification: protocol codec tests, server lib tests, runner-watch replay/schema tests, cargo fmt --all --check, and strict scenario 07 conformance pass.


Summary by cubic

Aligns the /broker/{n}/acquirejob response with the official GitHub Actions runner v2.335.1 so conformance scenario 07 (step failure) passes with strict schema checks. Also adds scenario replay metadata and schema normalization to keep protocol fidelity tight.

  • Bug Fixes

    • @aksh-gha-protocol: Matched the runner’s wire contract (renamed maskHints → mask; added jobName, lockedUntil, billingOwnerId, fileTable, defaults, environmentVariables, snapshot; expanded plan and timeline; emit jobContainer/jobServiceContainers/jobOutputs as explicit nulls; ServiceEndpoint now uses isReady; PipelineContextData supports Null and always emits tagged shapes; step JSON now includes name, continueOnError, timeoutInMinutes with runner-compatible nulls and omits empty environment).
    • @aksh-gha-parser: Populated runner variables and default regex-based mask hints; enriched contextData (github, inputs, job, matrix=null, needs, strategy, vars); set plan.planType="actions" plus timeline fields; added endpoint data (ConnectivityChecks, GenerateIdTokenUrl, ServerId, ServerName, isReady).
    • @aksh-runner-server: Echoed billingOwnerId and set requestId=0 on acquire; filled GitHub context (workflow_ref, workflow_sha, repositoryUrl, ref metadata); set fileTable and job context extras; injected github_token, system.github.results_endpoint, and system.orchestrationId.
    • @aksh-gha-protocol + server: Added WorkflowSubmission.workflow_path; webhook sets it so the job reflects the real workflow location.
  • New Features

    • @runner-watch: Replays scenario 07 using the checked-in workflow and validates schemas deterministically (array-union ordering, context decoding, and targeted schema-diff detection for acquirejob).
    • Added CONFORMANCE-07-CONTEXT.md with gaps, approach, and verification steps to keep the protocol aligned.