Batch merge: PRs #68, #58, #59, #61, #60, #62, #57, #56#71
Merged
mattleaverton merged 28 commits intomainfrom Mar 31, 2026
Merged
Batch merge: PRs #68, #58, #59, #61, #60, #62, #57, #56#71mattleaverton merged 28 commits intomainfrom
mattleaverton merged 28 commits intomainfrom
Conversation
(cherry picked from commit a66b4f39f10f6c2ac53d44598c2544148356c19b)
(cherry picked from commit 05947fb09f9f187f0d3f080cd132c7d510b3cc83)
Adds --validate as a synonym for --preflight/--test-run in the attractor run command, matching the flag name proposed in #47. Updates usage text, error messages, and adds test coverage. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Decouples heartbeat emission from output-growth gating so active stages produce predictable liveness signals even during quiet periods. Adds appendProgressLivenessOnly to write events without resetting the stall watchdog timer, preserving correct stall detection while improving observability. Heartbeat events now include since_last_output_s for distinguishing "alive but quiet" from "alive and producing output". Fixes #51 Co-Authored-By: Claude Opus 4.6 <[email protected]>
Fixes three sources of false-positive reference classification:
1. Reject tokens containing spaces as non-path natural language
2. Replace broad ContainsAny("*?[") with looksLikeGlobPattern() that
validates bracket syntax: unmatched [ is rejected, and matched [...]
requires a path separator to disambiguate from programming constructs
3. Add .worktrees and .cargo-target to artifact path exclusions
Fixes #48
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Adds infrastructure to prevent false-green outcomes when verification commands fail due to transient infra issues: - New StatusDegradedSuccess stage status that routes like success but signals that required verification was blocked or failed - New Verification and VerificationEntry types on Outcome for structured verification reporting (status, blocked_reason, command results) - Updated stage status contract preamble to instruct agents to use degraded_success when verification is blocked - degraded_success routes like success in the engine (retry reset, goal gate, parallel completion) so runs continue correctly Fixes #50 Co-Authored-By: Claude Opus 4.6 <[email protected]>
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Co-Authored-By: Claude Opus 4.6 <[email protected]>
…i/ paths - Add gpt-5.3-codex-spark to cliOnlyModelIDs map (fixes TestIsCLIOnlyModel) - Replace root .ai/verify_errors.log and .ai/test-evidence/latest/ with run-scoped .ai/runs/$KILROY_RUN_ID/ paths in demo spec (fixes TestReferenceSurfaces_NoLegacyRootAIScratchPaths) Co-Authored-By: Claude Opus 4.6 <[email protected]>
…i/ paths - Add gpt-5.3-codex-spark to cliOnlyModelIDs map (fixes TestIsCLIOnlyModel) - Replace root .ai/verify_errors.log and .ai/test-evidence/latest/ with run-scoped .ai/runs/$KILROY_RUN_ID/ paths in demo spec (fixes TestReferenceSurfaces_NoLegacyRootAIScratchPaths) Co-Authored-By: Claude Opus 4.6 <[email protected]>
…i/ paths - Add gpt-5.3-codex-spark to cliOnlyModelIDs map (fixes TestIsCLIOnlyModel) - Replace root .ai/verify_errors.log and .ai/test-evidence/latest/ with run-scoped .ai/runs/$KILROY_RUN_ID/ paths in demo spec (fixes TestReferenceSurfaces_NoLegacyRootAIScratchPaths) Co-Authored-By: Claude Opus 4.6 <[email protected]>
…i/ paths - Add gpt-5.3-codex-spark to cliOnlyModelIDs map (fixes TestIsCLIOnlyModel) - Replace root .ai/verify_errors.log and .ai/test-evidence/latest/ with run-scoped .ai/runs/$KILROY_RUN_ID/ paths in demo spec (fixes TestReferenceSurfaces_NoLegacyRootAIScratchPaths) Co-Authored-By: Claude Opus 4.6 <[email protected]>
- Apply gofmt to cli_only_models_test.go (CI has been failing since a13d131 due to alignment whitespace) - Convert remaining .ai/verify_errors.log and .ai/test-evidence/latest/ references in demo/substack-spec-v01.dot to run-scoped .ai/runs/$KILROY_RUN_ID/ paths, fixing TestReferenceSurfaces_NoLegacyRootAIScratchPaths Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
…-dotpaths' into merge/pr-batch-cleanup # Conflicts: # internal/attractor/engine/cli_only_models_test.go
…mapping' into merge/pr-batch-cleanup
…' into merge/pr-batch-cleanup # Conflicts: # internal/attractor/engine/cli_only_models_test.go
…vermatch' into merge/pr-batch-cleanup # Conflicts: # internal/attractor/engine/cli_only_models_test.go
… into merge/pr-batch-cleanup # Conflicts: # internal/attractor/engine/cli_only_models_test.go
…n' into merge/pr-batch-cleanup # Conflicts: # internal/attractor/engine/cli_only_models_test.go
…stion-fallback-retry' into merge/pr-batch-cleanup
…-ownership-locking' into merge/pr-batch-cleanup
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
Batch merge of 8 open PRs with conflict resolution. All tests pass, build is clean.
Included PRs (original commits preserved with author attribution)
Conflict resolution
All 4 mvanhorn PRs and PR #68 shared cleanup commits that conflicted with the already-merged #67 (GPT-5.4-SPARK model rename). Each merge conflict was the same trivial resolution: keep the renamed model ID with corrected gofmt whitespace.
Verification
go build ./...— cleango test ./...— all packages passCloses #68, closes #58, closes #59, closes #61, closes #60, closes #62, closes #57, closes #56