Merge branch 'codex/claude-runner-default' into codex/claude-runner-platforms

* codex/claude-runner-default:
  docs: record hosted install correction and preview recovery gate
  fix(runner): align clean install probe with Pi profile digest
This commit is contained in:
Dotta committed 2026-10-14 12:27:56 -05:00
commit 6b0cb979d4
2 files changed
+19 -1

No files matched your search

@@ -1297,3 +1297,21 @@ controls pass. Logs use /private/tmp/claude-adb69-* prefixes. No new rendering,
paid model turn, budget read/resume, hold release or local native build ran. paid model turn, budget read/resume, hold release or local native build ran.
The local preview remains its separately recorded older treatment; this source The local preview remains its separately recorded older treatment; this source
composition is not a claim of current installed/runtime or task/revision proof. composition is not a claim of current installed/runtime or task/revision proof.
### Hosted clean-install correction — 2026-10-14
The first reconciled hosted Build jobs (38605177149 and 38605182039)
failed in the credential-free Pi public-install probe: the generated profile25
digest was dd673874…, while the probe retained d25d674c…. Protocol correction
519e8369a1 aligns that exact assertion with the immutable profile; all24 existing
public-install sandbox controls and profile generation checks pass locally.
The daemon, profile, admission checks and paid-provider behavior are unchanged.
The full clean consumer will rerun in hosted CI; no local Docker build ran.
The earlier port3105 preview has been replaced by another test-drive
(source a6d81b67cb, separate github-review data directory). The report uploader
stopped on its404 target check before creating an attachment or work product.
That foreign instance is left untouched. Claude preview recovery must select
a separate port and the existing Claude data directory; the historical3105
link is no longer a usable Claude preview.
+1 -1
View File
@@ -53,7 +53,7 @@ const { resolvePaperclipRunnerBinary } = await import(pathToFileURL(join(server,
const { createCapabilityRunnerdCodexTransport } = await import(pathToFileURL(join(server, 'dist/vendor/paperclip-runner/live/runnerd-codex-transport.js'))); const { createCapabilityRunnerdCodexTransport } = await import(pathToFileURL(join(server, 'dist/vendor/paperclip-runner/live/runnerd-codex-transport.js')));
const { QUALIFIED_ACPX_PROFILES } = await import(pathToFileURL(join(server, 'dist/vendor/paperclip-runner/drivers/acpx/qualified-profiles.js'))); const { QUALIFIED_ACPX_PROFILES } = await import(pathToFileURL(join(server, 'dist/vendor/paperclip-runner/drivers/acpx/qualified-profiles.js')));
assert.equal(QUALIFIED_ACPX_PROFILES.pi.agentProfileVersion, 25); assert.equal(QUALIFIED_ACPX_PROFILES.pi.agentProfileVersion, 25);
assert.equal(QUALIFIED_ACPX_PROFILES.pi.commandDigest, 'sha256:d25d674cda9a0853bdbf0521025099f1424c573d2f533630cb67d90e1bfcda3b'); assert.equal(QUALIFIED_ACPX_PROFILES.pi.commandDigest, 'sha256:dd67387487dadb08da76534c057dc0aa059f7698d1779cbd5fc452813828167a');
assert.equal(Object.hasOwn(QUALIFIED_ACPX_PROFILES.pi, 'qualificationModel'), false); assert.equal(Object.hasOwn(QUALIFIED_ACPX_PROFILES.pi, 'qualificationModel'), false);
assert.equal(Object.hasOwn(QUALIFIED_ACPX_PROFILES.pi, 'reportedModelId'), false); assert.equal(Object.hasOwn(QUALIFIED_ACPX_PROFILES.pi, 'reportedModelId'), false);
const daemon = resolvePaperclipRunnerBinary(); const daemon = resolvePaperclipRunnerBinary();