Config defaults & environment fixes (Phase 0.9, items 1-3)#77
Merged
mattleaverton merged 4 commits intodanshapiro:mainfrom Apr 2, 2026
Merged
Config defaults & environment fixes (Phase 0.9, items 1-3)#77mattleaverton merged 4 commits intodanshapiro:mainfrom
mattleaverton merged 4 commits intodanshapiro:mainfrom
Conversation
When a user provides a --config file that doesn't mention providers, auto-detection was completely skipped, causing "missing provider backend" errors even with API keys in the environment. Now auto-detection always runs and fills in missing providers — config-file values still take precedence via ApplyDetectedProviders. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Kilroy creates its own worktree for each run, so the parent repo's cleanliness is irrelevant. The old default of true caused runs to fail before starting whenever the repo had untracked or modified files. Users who need the old behavior can set require_clean: true in config. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Tool nodes (shape=parallelogram with tool_command) were missing KILROY_RUN_ID, KILROY_LOGS_ROOT, KILROY_WORKTREE_DIR, and other stage runtime env vars that agent nodes receive. This broke the .ai/runs/$KILROY_RUN_ID/ data-passing convention between tool and agent nodes. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
The previous commit changed the unconditional assignment from true to false, but it still overwrote any value the caller passed. Remove the unconditional assignment (bool zero value is already false) and fix the test that relies on require_clean=true to explicitly opt in. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
loadOrBuildConfig()now runs provider auto-detection for all configs, not just zero-config. A config file that omits providers no longer disables auto-detection — config-file values still take precedence.require_cleandefaults to false: Kilroy creates its own worktree, so the parent repo's cleanliness is irrelevant. Dirty repos no longer block startup. Users can still opt in withrequire_clean: true.KILROY_RUN_ID,KILROY_LOGS_ROOT,KILROY_WORKTREE_DIR, and other stage runtime env vars, matching agent/codergen nodes. Fixes the.ai/runs/$KILROY_RUN_ID/data-passing convention.Test plan
TestToolGraph_PartialConfigAutoDetectsProviders— partial config + env key → provider detected, run succeedsTestToolGraph_DirtyRepoSucceedsWithDefaultConfig— dirty repo, norequire_cleanin config → run succeedsTestToolGraph_RunIDInjected— tool node echoes$KILROY_RUN_ID→ matches expected run IDTestRun_FailsWhenRepoIsDirty— updated to explicitly opt in toRequireClean: true🤖 Generated with Claude Code