The 11 run_<x>_native launchers each spelled their pass-through arg
differently (claude_args, pi_args, ...). The provider seam needs one uniform
spelling to call them generically. Introduce extra_args as that spelling and
keep <x>_args as a back-compat alias.
- Add native_terminal.normalize_extra_args(): reconciles extra_args vs the
legacy <x>_args alias — extra_args wins, the legacy alias emits a
DeprecationWarning (removal targeted for 0.9.0), neither yields ().
- Give all 11 run_<x>_native entry points a keyword-only extra_args and make
<x>_args an optional deprecated alias, normalizing at the top of each body
so the deep internals keep using the existing local variable unchanged.
- Migrate the internal callers (resume_dispatch ×10, chat resume-redirect ×6,
cli_native ×11) to extra_args so nothing in core trips the new warning; the
alias exists purely for external back-compat.
- Tests: unit-cover the four normalize_extra_args branches. Existing native
tests that still call <x>_args= now double as back-compat coverage.
No behavior change: with default warning filters the full native + hub suite
is green (verified the failure set is byte-identical to the clean tree; the
handful of red tests are pre-existing gateway-env artifacts unrelated to this
change).
Co-authored-by: Isaac
Signed-off-by: Pat Sukprasert <pattara.sk127@gmail.com>
Workstream progress
Modular native-harness registry (
designs/harness-modular-registry-proposal.md). 12 PRs total — Phase 1 (internal seam, core-only): 1.1–1.8; Phase 2 (community + web): 2.1–2.4./v1/harnessesnative rows → 2.3 Web off the endpoint → 2.4 Docs + example plugin.Critical path: 1.1 → 1.2 → 1.5 → 2.2 → 2.3.
Related issue
N/A — Phase 1, PR 1.2 of the modular native-harness registry.
Summary
The 11
run_<x>_nativelaunchers each spelled their pass-through arg differently (claude_args,pi_args, …). The provider seam (1.1) needs one uniform spelling to call them generically. This introducesextra_argsas that spelling and keeps<x>_argsas a back-compat alias. No behavior change — every native harness launches identically.native_terminal.normalize_extra_args(): reconcilesextra_argsvs the legacy<x>_argsalias —extra_argswins, the legacy alias emits aDeprecationWarning(removal targeted for 0.9.0; we're on 0.7.0.dev0, so the deprecate-and-remove-in-different-releases rule holds), neither yields().run_<x>_nativeentry points a keyword-onlyextra_argsand make<x>_argsan optional deprecated alias, normalizing at the top of each body so the deep internals keep using the existing local variable unchanged.resume_dispatch×10,chatresume-redirect ×6,cli_native×11) toextra_argsso nothing in core trips the new warning; the alias exists purely for external back-compat. (Exploration found zero external callers, so the alias is belt-and-suspenders.)Test Plan
normalize_extra_argsbranches (extra-only, legacy-only+warns, both→extra-wins+warns, neither→()).extra_argsspelling. Existing native tests that still call<x>_args=now double as back-compat coverage for the alias.Demo
N/A — no user-facing behavior change (keyword-arg normalization).
Type of change
Test coverage
Coverage notes
The
<x>_argsalias is a soft deprecation, not a hard break today — but I checked the Breaking change box because the parameter is on a one-release deprecation clock (removal in 0.9.0). Tests cover both spellings; the existing native suites (unchanged) cover launch behavior.Changelog
The
run_<x>_nativelaunchers accept a uniformextra_args; the per-harness<x>_argskeyword is deprecated and will be removed in 0.9.0.This pull request and its description were written by Isaac.