docs(harness): revise Phase 1 estimates from runner exploration - #3357
Conversation
|
b913aff to
1c8568d
Compare
5283ceb to
f03e74e
Compare
1c8568d to
ffb923e
Compare
f03e74e to
f4a755f
Compare
ffb923e to
7cedfc1
Compare
f4a755f to
422fb40
Compare
7cedfc1 to
59b71cb
Compare
422fb40 to
d28c6d0
Compare
59b71cb to
70f3daa
Compare
d28c6d0 to
b9b7c2d
Compare
Reading the runner dispatch surface (not guessing) changed the shape of the remaining work, so update the proposal's estimates and plan: - Split PR 1.5 into a serial runner sub-stack: 1.5a spawn-env (bounded, the first measurement), 1.5b launch (the epicenter — _auto_create_<x>_terminal has 11 divergent signatures, so the seam passes a NativeLaunchContext to a uniform provider.auto_create_terminal(ctx) adapter with pre_launch hooks, not a single positional call), 1.5c terminal-route. - Re-scope 1.6 interrupt/stop upward (Med -> Med-High, 2d -> 3-4d): every handler closes over app-scope state (server_client, resource_registry, _publish_event, module dicts), so extraction needs a DI context, not a move. - Revise totals: Phase 1 ~17-25 -> ~20-29 eng-days; overall ~26-37 -> ~29-41 across ~12 -> ~14 PRs; critical path rewritten to the serial runner chain. - Add a Calibration subsection recording the learning from 1.1-1.3 (additive PRs come in under estimate; the real cost is test-shape churn; the runner is the back-loaded risk) and settle the "signature uniformity" open question with the confirmed finding. Docs-only; no code paths affected. Co-authored-by: Isaac Signed-off-by: Pat Sukprasert <pattara.sk127@gmail.com>
The harness bench's selection + driver layer is already registry-driven: manifest.py auto-adds every NATIVE_TUI capability as a BenchProfile and the NativeTuiDriver is selected generically, so a community native plugin enumerates and gets a profile with zero bench edits. Record the two remaining gaps and where they close: - Provisioning needs registry-driven agent seeding — closed for free by PR 1.7 (the native driver provisions against a pre-seeded <harness>-ui agent). - Tool-call probe metadata is hardcoded (_NATIVE_TOOL_PROVOCATION) — fold optional shell_tool_name / shell_tool_prompt capability fields into PR 1.8 so the probe reads off the registry; until then those probes skip (non-fatal). Add a "Harness bench compatibility" subsection, extend 1.8's scope with the tool-probe fields, and give 2.4 a benchable acceptance criterion (the example plugin runs `python -m tests.harness_bench --harness <plugin> --live` green). No new phase or standalone bench-migration PR. Co-authored-by: Isaac Signed-off-by: Pat Sukprasert <pattara.sk127@gmail.com>
b9b7c2d to
54aaeb2
Compare
|
🏷️ Doc impact: The change only edits an internal design/proposal doc under Auto-classified on merge. Set the label manually before merging to override. · run |
Workstream progress
Modular native-harness registry (
designs/harness-modular-registry-proposal.md). This is a docs-only planning update — no PR number of its own in the phase sequence; it revises the plan the other PRs execute against.Related issue
N/A — planning-doc revision.
Summary
Reading the runner dispatch surface (rather than guessing from the coupling inventory) materially changed the shape of the remaining work. This updates the proposal's estimates and plan to match:
build_spawn_env(session_id, *, server_client, labels)hook._auto_create_<x>_terminalhas 11 divergent signatures (3 common params; claude carries 9 extras), so the seam passes aNativeLaunchContextdataclass to a uniformprovider.auto_create_terminal(ctx)adapter with explicitpre_launchhooks — not a single positional call.server_client,resource_registry,_publish_event, module dicts), so extraction needs a dependency-injection context, not a plain move.landed(feat(harness): add NativeHarnessProvider seam foundation (PR 1.1) #3239/refactor(harness): normalize native launcher pass-through args (PR 1.2) #3244/refactor(harness): route native resume through the provider seam (PR 1.3) #3314) now that the stack has merged.Test Plan
Docs-only.
pre-commit run --files designs/harness-modular-registry-proposal.mdpasses. The runner claims (divergent_auto_create_*signatures, the two duplicated spawn-env blocks, closure-bound interrupt/stop handlers, the opencode turn-path cold-boot) were verified againstomnigent/runner/app.pyandomnigent/runner/native/orchestration.pyat the current tree.Demo
N/A — documentation only.
Type of change
Test coverage
Coverage notes
Documentation-only change to a design proposal; no code paths are affected. The factual claims about the runner dispatch surface were verified by reading the current source as noted in the Test Plan.
This pull request and its description were written by Isaac.