Skip to content

History / await_control

Revisions

  • docs: Sf-Workspace, and what the gateway sets (#90) README, AGENTS.md, the skill and the wiki name the Sf- headers, say the gateway sets Sf-Workspace and that Claude.ai never sends it (ruling 12), and stop saying the session names are refused (ruling 10, revised). The CHANGELOG's [Unreleased] gains the BREAKING line, and its workspace line no longer contradicts it. From the whole-branch review: two test names and a heading say Sf-, and a test pins ?session= beside an old header. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent: done

    @kubed-io kubed-io[bot] committed Oct 29, 2026
  • docs: the OpenAPI and the handshake name Sf-Workspace (#90) The published header parameter is Sf-Workspace, and its description says the old names are refused. The handshake, the spec's sentences and the wiki generator follow; the golden openapi.json and the generated wiki pages are regenerated, and change only in the header's name. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

    @kubed-io kubed-io[bot] committed Oct 29, 2026
  • feat: an untrusted certificate is a 400 that says to use insecure=true `browser.go` turns an `InsecureCertificateException` into `faults.Untrusted`, which says to open with `insecure=true` and nothing of the browser's text. A bare one from another command is a 400 too. A certificate failure the browser reports only as `net::ERR_CERT_*` text stays a 500. The 400 descriptions, TROUBLESHOOTING and AGENTS.md say so, and the goldens and wiki pages are regenerated. Task 5 of #92's plan. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

    @kubed-io kubed-io[bot] committed Oct 28, 2026
  • test: capture joining a hold opened for control, and the stop said as it is The whole-branch review found the monitor's path where capture joins a connection held only for control untested; it now has tests, with the reverse and the lapsed-capture path. AGENTS.md, the skill and the await_control notes no longer promise every waiter a stopping answer, since uvicorn's graceful timeout usually cancels it first, and say that a read begun before Control was asked can be refused part-way. live/pages.py imports the BiDi connection for typing only. Agent: done

    @kubed-io kubed-io[bot] committed Oct 27, 2026
  • docs: control and await_control for agents and maintainers The skill's workspaces reference says what a refusal looks like, what the control field on a result means, which reads still answer, and how await_control waits and what it returns. AGENTS.md replaces the live view's "nothing is refused" with the rules for a person in Control, and brings the lock, capture, monitor and scaling sections up to date. The wiki gains await_control's notes, and the changelog its line.

    @kubed-io kubed-io[bot] committed Oct 27, 2026
  • feat: await_control returns when a person hands the browser back A capability on both surfaces: an MCP tool with optional task support (Docket in memory) and POST /browser/await-control as a long poll. It answers at once when nobody holds the browser, and otherwise returns at the hand-back with who held it and for how long, the page and its outline, and the pages they reached. A blocking call sends progress and answers "call again" at live.await_cap (90 s). The workspace reaches the task's worker in a private header set at submission; an unnamed task is refused. Stopping the server releases every waiter before Docket waits for its tasks.

    @kubed-io kubed-io[bot] committed Oct 27, 2026