You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,6 +19,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
19
19
20
20
### Fixed
21
21
22
+
-**TripleShot Combine Evaluation Parse Failure** - `FlexibleStringSlice` now handles LLM judge output that writes an array of objects (e.g., `[{"description":"...","source":"attempt_1"}]`) where flat strings were expected; also improved the judge prompt to show a populated `suggested_changes` example and explicitly require plain strings
23
+
22
24
-**Agent Teams tmux mode** - Prevent Claude Code Agent Teams from starting in tmux mode inside Claudio by setting `teammateMode: "in-process"` in worktree settings (#664)
23
25
24
26
-**Agent Teams tmux mode (CLI flag)** - Pass `--teammate-mode in-process` directly on the CLI command for both start and resume, ensuring CC cannot override the setting via user-level settings or `$TMUX` auto-detection
Copy file name to clipboardExpand all lines: internal/orchestrator/workflows/tripleshot/AGENTS.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,5 +5,5 @@
5
5
6
6
## Pitfalls
7
7
8
-
-**LLM output type mismatches in sentinel files** — LLMs frequently write a plain string where the JSON schema expects `[]string` (e.g., `"suggested_changes": "fix the bug"` instead of `"suggested_changes": ["fix the bug"]`). The `Evaluation`, `AttemptEvaluationItem`, and `AdversarialReviewFile` structs use `FlexibleStringSlice` for all `[]string` fields and `FlexibleString` for `Reasoning` to tolerate this. When adding new LLM-parsed fields of type `string` or `[]string`, use these flexible types instead of bare Go types. Without this, `json.Unmarshal` fails, `VerifyWork` returns false, and the bridge retries the task — spawning a duplicate instance.
8
+
-**LLM output type mismatches in sentinel files** — LLMs frequently deviate from the expected JSON types. `FlexibleStringSlice` handles three cases: a plain string (`"fix the bug"`), an array of strings (`["fix A", "fix B"]`), and an array of objects (`[{"description":"fix A","source":"attempt_1"}]`). For objects, it extracts a well-known text key (`description`, `text`, `change`, `message`, `content`, `value`) or falls back to JSON-encoding the whole object. `FlexibleString` similarly handles string-or-array. When adding new LLM-parsed fields of type `string` or `[]string`, use these flexible types instead of bare Go types. Without this, `json.Unmarshal` fails, `VerifyWork` returns false, and the bridge retries the task — spawning a duplicate instance.
9
9
-**Sentinel file search in subdirectories** — `FindCompletionFile`, `FindEvaluationFile`, and `FindAdversarialReviewFile` all search the worktree root *and* immediate subdirectories. LLM instances sometimes write files relative to their CWD rather than the worktree root. Don't bypass `Find*File` with a direct `filepath.Join(worktree, filename)`.
"suggested_changes": ["Use Attempt 1 as the base — it has the cleanest API surface", "Cherry-pick the retry logic from Attempt 3: src/retry.go"]
703
741
}
704
742
`+"```"+`
705
743
@@ -708,7 +746,7 @@ Write your evaluation to ` + "`" + EvaluationFileName + "`" + ` using this struc
708
746
- **merge_strategy**: "select" (use one as-is), "merge" (combine changes), or "combine" (cherry-pick specific changes)
709
747
- **reasoning**: Detailed explanation of your evaluation and decision
710
748
- **attempt_evaluations**: Score and analysis for each attempt (1-10 scale)
711
-
- **suggested_changes**: If merge_strategy is "merge" or "combine", list the specific changes to make
749
+
- **suggested_changes**: If merge_strategy is "merge" or "combine", list the specific changes to make. Each entry must be a plain string (not an object).
0 commit comments