Conversation
Generated-by: Codex (OpenAI)
Generated-by: Codex (OpenAI)
31681b8 to
93c7925
Compare
|
Status for maintainers: this PR is mergeable and has no review threads. The hosted Runtime Host step failed only in the unchanged |
Generated-by: OpenAI Codex
| runCtx, | ||
| ); | ||
| final = registerObservation( | ||
| final = acceptObservation( |
There was a problem hiding this comment.
P2 — An invalidated closing capture is reported as a successful sequence without a current observation
The closing capture is guarded by acceptObservation, so when the observation lease is invalidated during that capture it correctly returns no frame. However, stopped remains unset and the result is still formatted as maka_computer.element_sequence ok (N of N steps) with no error or recovery state. I reproduced this on the current head by calling sessionEvents.reobserveRequired('s1') from the closing captureObservation: the result was ok (1 of 1 steps) with no Fresh observation, while the session snapshot was reobserve_required; the next bound action was then refused.
This leaves the model with a success message but no usable observation and causes an avoidable failed follow-up call. The same path occurs when a Stop invalidates the closing capture.
Summary
Fixes #5474. After
element_sequencereturned a fresh observation, its next bound action was rejected asreobserve_required: the frame was registered but the session was not activated. Accept all six fresh-observation paths with a pre-capture lease check and synchronous frame/session activation. This also declines captures invalidated while in flight.A separate second commit shares the existing bound-action execution protocol between a single semantic action and each sequence step: recheck the action lease after presentation, preserve partial delivery as
outcome_unknown, and apply the same frame retirement/confirmation rules. Sequence still owns target lookup, progress, capture policy and response formatting; ordinary type/key is unchanged. Host/fake-backend timing checks do not establish real OS input delivery. Refs #4909; independent of open #5458.Verification
actual: reobserve_required; after the fix it passes. The presentation-stop and partial-delivery regressions also failed before the second commit and pass after it.npm run lint,npm run format:check,npm run build,npm run typecheck,npm run check:asf-headers, and both prescribedknipworkspace checks passed.npm testwas stopped at user request to avoid a large suite; before interruption, several concurrent runtime-host tests reported readiness/terminal timeouts. The first remotetestrun exposed a new-Turn observe lease regression in this PR; it failed the cross-layer contract, was fixed in the first commit, and the focused cross-layer test is green locally. The corrected head passed remote build, typecheck, and affected standard workspace tests. The later Runtime Host test step failed onruntime-resource-processwith a 60-second PTY control-close timeout (not in the changed code). This account lacks Actions rerun permission, so a maintainer needs to rerun that job. The full suite is not claimed green pending a privileged rerun of the Runtime Host step. No real Desktop/model/OS CU reproduction was run.AI use
Tool(s) and scope: Codex (OpenAI) authored the scoped runtime changes, regression tests, and this description; the contributor reviews and owns submission. Both commits carry
Generated-bytrailers.Checklist
Does this PR entail a change in behavior?