Skip to content

Partial subagent config blocks Kit startup when harness is missing #222

Description

@walker-tx

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 main 735409e)
  • 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions