openclaw/docs/reference
Peter Steinberger 554fb212c9
fix(nodes): report camera positions the hardware actually reached (#128595)
* fix(nodes): report camera positions the hardware actually reached

`camera.ptz.control` returned a position it never verified, and
`camera.snap`/`camera.clip` could capture from a camera the caller did
not ask for. Both told the agent an action succeeded when it had not.

PTZ read its post-write status from the same UVC connection that issued
the write. Gimbal cameras echo a pending setpoint back on the writing
connection, so the check confirmed its own write. Those cameras also
service camera-terminal controls only while a video stream is active, and
no capture session was held, so writes could be discarded entirely while
reads returned phantom values.

Hold a frame-discarding capture session across every PTZ operation, close
the writing controller, and verify through a fresh connection against each
axis's advertised resolution. An axis that misses now reports through the
existing CAMERA_PTZ_PARTIAL outcome with observed versus requested values
and what to check next.

Apple camera selection accepted an explicit deviceId and silently fell
back to the default camera when nothing matched. Linux already rejected
this, and CameraPTZService already rejected it in the same app. Centralize
exact selection in OpenClawKit so macOS and iOS both fail with a
device-not-found error; the facing/default fallback stays only for
requests that supply no deviceId.

camera.ptz.status now activates the camera and its privacy indicator for
the duration of the read. That is the cost of returning real positions.

* fix(nodes): tell callers how to recover from an unknown camera ID

Device IDs change when cameras are reconnected, so a bare
device-not-found error dead-ends the caller. Both Apple errors and the
docs now point at camera.list for current IDs.

Addresses the ClawSweeper P2 finding on #128595.
2026-08-24 01:56:12 -07:00
..
templates feat(agents): rename model- and user-facing scheduler strings to automations (#114852) 2026-07-30 08:54:55 -07:00
AGENTS.default.md fix(nodes): report camera positions the hardware actually reached (#128595) 2026-08-24 01:56:12 -07:00
api-usage-costs.md fix(google): align unsupported CLI auth paths (#118034) 2026-08-03 00:13:19 +08:00
credits.md
database-schemas.md feat(gateway): generic operator roles for non-maintainer access (#128548) 2026-08-24 01:20:03 -07:00
device-models.md
full-release-validation.md fix(release): preserve validation plan across reruns (#127343) 2026-08-21 19:08:32 -07:00
memory-config.md fix(memory): enforce canonical SecretRef resolution (#127699) 2026-08-23 20:36:55 -07:00
openclaw-ai.md build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks (#114006) 2026-07-26 01:29:55 -04:00
prompt-caching.md fix(ci): settle Claude cache probe before generation baseline (#128507) 2026-08-23 23:18:58 -07:00
pull-request-review-flow.md ci: acknowledge pull request receipts in clawsweeper dispatch (#120934) 2026-08-09 00:15:08 -07:00
release-performance-sweep.md build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks (#114006) 2026-07-26 01:29:55 -04:00
RELEASING.md fix(release): report blockers before diagnostics finish (#127014) 2026-08-21 09:14:39 -07:00
rich-output-protocol.md docs(media): clarify legacy MEDIA line formatting (#96275) 2026-07-31 21:21:59 -07:00
rpc.md
secret-placeholder-conventions.md
secretref-credential-surface.md fix(nostr): retain SecretRef-backed accounts (#126934) 2026-08-20 19:14:08 -07:00
secretref-user-supplied-credentials-matrix.json fix(nostr): retain SecretRef-backed accounts (#126934) 2026-08-20 19:14:08 -07:00
session-management-compaction.md fix(cron): prune terminal task history after seven days (#126095) 2026-08-21 00:10:11 -04:00
test.md fix(ci): settle Claude cache probe before generation baseline (#128507) 2026-08-23 23:18:58 -07:00
token-use.md fix(google): align unsupported CLI auth paths (#118034) 2026-08-03 00:13:19 +08:00
transcript-hygiene.md improve(gateway): compose live session stress probes (#122519) 2026-08-12 06:22:08 -07:00
wizard.md docs: consolidate setup and plugin references (#126132) 2026-08-18 20:00:05 -07:00