diff --git a/docs/reference/author-contracts.md b/docs/reference/author-contracts.md index cc939bb43..19b63c646 100644 --- a/docs/reference/author-contracts.md +++ b/docs/reference/author-contracts.md @@ -16,7 +16,7 @@ This draft was published with **OpenRig 0.7.6** (tag [`v0.7.6`](https://github.c | Community launcher presets, RigSpec members and AgentSpec role/startup declarations | Implemented interfaces | They compose configuration. A launcher must implement its declared effects; successful parsing does not prove delivery or native behavior. | | `runner: true` with `launch_result: true` | Released in 0.7.6 | The declaration is retained at launch, and Core uses the runner identity/activity path. It does not supply a runner executable. | | `passes_model: true` | Released in 0.7.6 | Passes the declared model through `OPENRIG_MODEL`. It does not observe or verify the effective native model. Cursor and Hermes examples leave it off pending native qualification. | -| The dsh/ACP input, cancellation and answered permission recipe (a person answers, and the default is permit) | OpenRig's side released in 0.7.8; runner side not qualified | OpenRig asks a person for a runner's permission requests and returns the answer. No end-to-end dsh integration is established, and the native verdict is pending. Native reopen capabilities and the tools-off case remain implementer questions. | +| The dsh/ACP input, cancellation and answered permission recipe (a person answers, and the default is permit) | OpenRig's side released in 0.7.8; runner side shown on two runners, not qualified in general | OpenRig asks a person for a runner's permission requests and returns the answer. In 0.7.8's release testing on a Claude Haiku model, dsh-seat 0.3.0 (dsh 0.2.1-rc.2 over ACP) showed input, activity, cancel, exact resume and shutdown, and the dsh example runner showed a person's allow-once and reject-once; see the [runner contract](harness-runner-contract.md)'s status for what wasn't shown. Native reopen capabilities and the tools-off case remain implementer questions. | | Exact native resume via an author launcher | Existing interface; integration-specific evidence | A requested conversation must reopen exactly or fail honestly. One provider/harness result does not establish portability to another. | | Environment preparation, projection, artifact export and owned-resource cleanup | OpenShell reference driver released in 0.7.8; generic seam proposed | The platform chapter makes the responsibilities reusable. Core ships one maintained reference driver, OpenShell 0.1.6, as `rig environment`. It doesn't provide a generic platform driver or `DeploySpec` loader. | | `HarnessSpec`, `DeploySpec`, generic lifecycle fields and wake-on-demand declarations | Proposed vocabulary or unsupported configuration | They are not new accepted YAML keys. Use existing composition and an explicit author implementation. | diff --git a/docs/reference/harness-runner-contract.md b/docs/reference/harness-runner-contract.md index 5c8dd316a..c5c667930 100644 --- a/docs/reference/harness-runner-contract.md +++ b/docs/reference/harness-runner-contract.md @@ -6,13 +6,25 @@ > - **Released in 0.7.8:** seat activity grants (section 4), and OpenRig's side of the answered permission path > (section 7). > - **Runner-author behavior, not yet qualified:** the input, cancellation and permission recipe in sections 5-7, and -> the runner-side shutdown obligation in section 9. A dsh port implementing this recipe is not qualified. +> the runner-side shutdown obligation in section 9. Two runners have shown parts of it natively (below); no +> runner is qualified beyond that. > - **Existing interfaces with author obligations:** launch-result identity, exact resume, first input and model > handoff. These interfaces do not establish that a particular runner implements them correctly. > - **Unchanged:** plain community presets and the built-in runtimes (Claude Code, Codex, Pi, OMP, terminal). > -> No harness has been run end to end under this contract yet, and the native verdict is pending. The first candidate -> is dsh over ACP. +> **What has run natively, in 0.7.8's release testing, against a Claude Haiku model:** +> - **dsh-seat 0.3.0**, an outside runner for dsh 0.2.1-rc.2 over ACP: launch and first input, useful queue work, a +> multiline message with a `/abort` line inside it delivered as one prompt, activity that stayed working through a +> 52-second quiet tool interval and then read idle, cancel by a bare `/abort` typed in the pane, and the same +> conversation resumed by `session/resume` after `rig down --snapshot` and `rig up`, with the runner and its child +> gone after the managed down. +> - **The dsh example runner** (`community-harness-examples/dsh/`): dsh's native `session/request_permission` reached +> a person, whose allow-once took effect and whose reject-once didn't. +> +> **Not shown natively:** a DeepSeek model, the example runner's own resume (its preset declares none), the default +> permit when nobody can be asked (checked without a model only), a typed or Slack answer, a second person's +> answer, reboot recovery, and the model OpenRig observes. Any other runner, provider or path is unqualified until +> it's shown. > > Release status and pinned references are in the [joined author guide](author-contracts.md). The > [community presets reference](community-harness-presets.md) describes the implemented fields, including the runner