FACTUAL ACTIVITY RECORD · An activity record based on work that took place
Updating Runner LaunchAgent smoke testing to the current contract
Replacing an obsolete no-work fixture with real runtime configuration and stage-level one-shot results
Purpose
The Editorial Runner LaunchAgent smoke still expected the minimal runtime JSON and two-field no-work output from before the execution flow was added. The test therefore failed on a contract mismatch even when the current Runner was correct.
The goal was to give the test the runtime configuration used by the real service and validate scheduled, collection, and generation stage results, checking the boundary between LaunchAgent lifecycle and the current Runner on actual macOS service control.
Implementation
The Runner fixture in regression test now generates current-schema runtime configuration containing the local API, publishable key, Codex binary, runtime root, Connector socket, Agent-definition directory, model, and timeout.
The obsolete fixed-string comparison was replaced by decoding the one-shot JSON and inspecting status plus scheduled, collected, collectionFailed, generated, and generationFailed counts. A smoke run with no due work requires no-work status and zero for every count.
The fixture confirms that no managed plist already exists, then uses the real service controller for install, manual start, output inspection, and uninstall. Cleanup also runs on failure, preserving the boundary that never overwrites an existing service.
Rendering diagram…
What was confirmed
Verification results
The initial failure from the obsolete fixture was isolated to the test contract rather than the product Runner.
After the update, real LaunchAgent smoke passed for both the Connector and Editorial Runner.
Twenty-four Swift tests passed, and no plist, service registration, or temporary runtime for either service remained after smoke testing.
At the cutoff, real LaunchAgent verification against the current Runner contract was applied to the target.
Basis for completion
The work was complete when the fixture used the real runtime schema and stage-level one-shot result, both real-service smoke tests and Swift tests passed, and cleanup left no managed service resources behind.