Skip to main content
These are properties of what ships today. None of them is an apology, and none of them is a roadmap.
  • Operator is a closed preview. Keys are minted per organization and shown exactly once. There is no self-serve signup, and provisioning an organization is done by the Ωmegas team; see the overview for exactly what was exercised end to end.
  • One task per device. A second submit while a task is live is 409 device_busy. More concurrency means more devices, subject to your organization’s device cap.
  • A task-event stream is capped at 300 seconds. The client resumes from the last seq; a hand-rolled consumer must too, or every long task appears to stall at five minutes.
  • Watch cannot type. Read-only is genuinely read-only. Input requires a control session, the operator:sessions:control scope, and a held takeover lease, and the gateway re-checks all three on every message.
  • Webhook delivery is at-least-once and unordered. Dedupe on the signed envelope’s id, order on its created_at, and answer 200 to duplicates, because 20 consecutive non-2xx answers disable the endpoint.
  • operator.webhook.* events are audit-only. They appear in GET /v1/audit and are never delivered; delivering them would loop a failing endpoint against itself.
  • No residential or geo-selected IPs. Devices egress from the provider’s datacenter addresses. region picks a datacenter, not a country’s consumer IP space.
  • No proxy, browser-fingerprint, or captcha-solving controls. A wall parks the task as needs_human and waits for a person.
  • Usage is a rolling 24-hour window of metered rows. cost_micro is absent on an unpriced dimension. Unpriced means unpriced, not free.
  • The escalation resolve callback is not for API-key clients. POST /v1/escalations/{id}/resolve is called by the escalation destination with a per-escalation bearer handed to it; an API-key client has no business holding that credential.