Partial subagent config blocks Kit startup when harness is missing
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 68/100
Research direction
Start with the configuration parsing path exercised by kit acp and reproduce the minimal TOML configuration from the issue. Add regression coverage showing that missing subagent.harness no longer blocks startup, while the incomplete configuration produces an actionable warning or safe fallback. Verify the repaired behavior with kit acp and the configuration-writing flow.
Written by the indexing model from the issue text.
Description
Summary
A partial [subagent] configuration makes Kit fail during startup when nested subagent settings exist but subagent.harness is missing. This should be an actionable warning with a safe fallback rather than a startup-blocking parse error.
In this case, another Kit session added an ACP harness and a model alias but did not add the newly required subagent.harness field. Every new Kit session then failed to open. Recovery was only possible because an existing Kit session was still running and could repair the configuration.
Environment
- Kit:
kit 0.2.1-herdr.1 - Commit:
c0a5df1(Herdr overlay based on main735409e) - OS: macOS (
Darwin, arm64) - Installation: locally built release binary managed through mise
- Reproduced with:
kit acp(originally encountered while starting a new Kit session)
Minimal reproduction
Create ~/.kit/config.toml containing:
[acp.claude]
command = "true"
[subagent.harnesses."acp.claude".models]
fable = "example-model"
Then run:
kit acp
Actual behavior
Kit exits before it can start:
Error: Custom { kind: InvalidData, error: "invalid config ~/.kit/config.toml: could not parse config: missing field `harness`\nin `subagent`\n" }
The minimal reproduction exits with status 1. The same invalid configuration prevents opening a new interactive Kit session, which means Kit cannot be used to diagnose or repair its own configuration.
Expected behavior
Kit should remain startable and emit an actionable warning when nested subagent configuration exists without subagent.harness. A safe behavior could be to ignore/disable the incomplete subagent configuration until it is repaired, while clearly explaining how to fix it, for example:
kit config set subagent.harness acp.claude
At minimum, configuration-writing flows that add subagent.harnesses.* settings should ensure the required parent subagent.harness value is also present.
Impact
A single incomplete optional subagent setting locks users out of all normal Kit startup paths. Without another running session or external editor knowledge, recovery is difficult and circular.
- Dominant language
- Rust
- Stars
- 40
- Forks
- 4
- Avg merge
- 4h 18m
- Merged PRs (30d)
- 148
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from speakeasy-api/kit
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
speakeasy-api/kit#175 ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
speakeasy-api/kit#165 ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
speakeasy-api/kit#151 ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
speakeasy-api/kit#149 ·
-
enhancement
Difficulty 1/5 Under an hour Newbie friendliness 84/100
speakeasy-api/kit#148 ·
All issues in speakeasy-api/kit
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100