add observation skill container - #3601
Conversation
Greptile SummaryThis change replaces robot-specific cached-image observation with a shared stream-backed observation skill and wires it into the affected robot agents. A focused runtime check confirmed that Confidence Score: 4/5Not safe to merge until non-timeout image-stream failures are distinguished from genuine frame timeouts. A focused executable harness injected a concrete stream failure and observed the shared observation skill convert it into a timeout response, directly demonstrating the incorrect failure behavior. Files Needing Attention:
What T-Rex did
|
| except Exception: | ||
| return SkillResult.fail( | ||
| "EXECUTION_TIMEOUT", | ||
| f"No camera frame received within {self._frame_timeout} seconds; " | ||
| "the camera may not be running.", |
There was a problem hiding this comment.
Stream failures are mislabeled as timeouts
The broad except Exception converts transport, decoding, and other image-stream failures into EXECUTION_TIMEOUT and tells the caller that no camera frame arrived. A reproduced RuntimeError from color_image.get_next() takes this path, so agents and operators cannot distinguish a broken stream from an inactive camera. Catch only the concrete timeout exception, and propagate or return a distinct execution failure for other errors.
Artifacts
Focused non-timeout ObserveSkill harness source
- The authored harness injects a RuntimeError through the color-image stream and compares direct stream behavior with ObserveSkill behavior, proving the masking path.
Direct stream RuntimeError capture
- The direct color-image stream call raised the injected RuntimeError and exited successfully, establishing the non-timeout input condition.
ObserveSkill masks RuntimeError as timeout capture
- Calling ObserveSkill after the identical RuntimeError injection returned EXECUTION_TIMEOUT and a no-camera-frame message, confirming error masking.
❌ 1 Tests Failed:
View the top 1 failed test(s) by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
Closes DIM-1505
Problem
Solution
/color_image