Repository navigation
fix(occ): omit a served unrecognized process-exit detail and drop stray doc comments - #2773
Conversation
…ay doc comments A runtime that serves the literal PROCESS_EXIT detail UNRECOGNIZED (or UNRECOGNIZED-attempt2) had it recorded as-is, which a controller from before #2763 refuses on read. Treat it like any other unknown detail and omit it at write, following #2769's omit-at-write rule; rows that already hold it still read, without the detail (finding 1706). Also remove two doc comments #2766 left on the wrong declarations in worker.ts and openshell-gateway-errors.ts (finding 1707).
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
freeqaz-openai
left a comment
There was a problem hiding this comment.
Free's clanker here. The code looks right at 3ad17b732. One correction to Risks: an existing UNRECOGNIZED-attempt2 row is still readable, but the Console does lose “The check was retried once and failed again.” I reproduced that with the actual earlier writer, both status readers, and the Console formatter. Dropping the unknown detail is reasonable; I’d change the description, not the code.
Suggested wording: Existing rows remain readable as a generic process exit. For an unknown detail ending in -attempt2, status also drops that retry indication; known retry details are preserved.
The two relevant tests fail against the base as expected, and I verified all three in the hosted conformance result. This is serialized-data and formatter evidence, not a live rollback or approval of the separate component/check/code masking contract.
|
Codex review: needs maintainer review before merge. What this changesThis PR omits literal UNRECOGNIZED process-exit details and removes two misplaced documentation comments. Example: A Harness reports PROCESS_EXIT with detail UNRECOGNIZED-attempt2.
Review scores
ProductKind: Bug fix · Worth it: Yes · Fix scope: Complete Regression provenancePossible regression — suspected (reviewed change). No predecessor PR is attributed. Merge readiness✅ Ready for maintainer review Keep this PR open: it completes the existing unknown-detail omission rule, current main still misses these inputs, and no introduced code defect was found. Priority: P2 Before mergeNone. FindingsNone. Tests
Agent review detailsHow this fits togetherRuntime failure evidence enters OCC from Compute status reads, passes through the shared cause validator, and reaches deployment records, status responses, and sanitized runtime logs. flowchart TD
Harness[Harness status] --> Compute[Compute status reader]
Compute --> Validator[OCC cause validator]
Validator --> Store[Deployment work records]
Store --> Status[Deployment status]
Status --> Console[Console failure display]
Logs[Runtime logs] --> Validator
Technical reviewBest possible solution: Normalize both sentinel literals through the existing OCC cause validator while keeping persisted rows readable. Do we have a high-confidence way to reproduce the issue? Current main preserves both sentinel literals, while the actual earlier validator rejects them; the changed tests cover those inputs, but this review executed no target code. Is this the best way to solve the issue? Removing the sentinel from the known-detail set completes the documented omission behavior at the shared owner without changing storage shape or adding another normalization path. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against cc14939ce187. Provenance checked
TestingProof path: unit tests only. SecurityNone. EvidenceWhat I checked:
Likely related people:
LabelsLabel changes:
Label justifications:
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment Reviewed October 17, 2026, 3:16 PM ET / 19:16 UTC. |
|
Free's clanker here. Thanks, agreed: the retry indication on an unknown |
Problem
PROCESS_EXITdetail at write, so a controller from before refactor(contracts): one runtime failure vocabulary for the runtime and OCC #2763 can still read the row during a rollback or rolling upgrade. One input was missed. If a runtime serves the literal textUNRECOGNIZED(orUNRECOGNIZED-attempt2), it was still recorded as-is, and the earlier reader refuses that row.worker.ts: the comment now sits abovePendingHarnessExposureWithdrawal.openshell-gateway-errors.ts: a comment for a constant that moved topackages/occ/src/errors.ts, which documents it there.Change
packages/occ/src/runtime-failure-cause.ts:UNRECOGNIZEDis no longer a knownPROCESS_EXITdetail. It is treated like any other unknown detail and omitted at write, following fix(occ): omit an unrecognized process-exit detail so earlier controllers read it #2769's omit-at-write rule.Verification
tests/conformance/contracts.test.mjs:UNRECOGNIZEDandUNRECOGNIZED-attempt2to be recorded without a detail.runtime-failure-cause.ts(2 of 3PROCESS_EXITtests fail) and pass with the change.UNRECOGNIZEDfrom the shape check, which would refuse existing rows;runtimeFailureCauseagainst rows the new code stores forUNRECOGNIZED,UNRECOGNIZED-attempt2,exit-999,exit-1andsignal-SIGKILL-attempt2. It reads every one.contracts.test.mjspassed 20/20 pinned to 2 CPUs.tsc --build, eslint and prettier are clean on the touched files.Risks
-attempt2(includingUNRECOGNIZED-attempt2), status also drops that retry indication, so the Console no longer says the check was retried once and failed again; known retry details are preserved. (Corrected after review: an earlier version of this section said nothing was lost.)