@phi-code-admin/phi-code 0.82.0 → 0.82.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.82.1] - 2026-06-14
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- **EXPLORE fan-out, validated against a real run.** Two parallel read-only
|
|
8
|
+
sub-explorers ran end-to-end against the live proxy in ~17s with no rate limit
|
|
9
|
+
and produced correct, merged findings. The validation surfaced one cleanup: the
|
|
10
|
+
model's `<think>` / `<thinking>` reasoning blocks leaked into the merged brief,
|
|
11
|
+
so they are now stripped before merging.
|
|
12
|
+
|
|
3
13
|
## [0.82.0] - 2026-06-14
|
|
4
14
|
|
|
5
15
|
### Added
|
|
@@ -65,6 +65,15 @@ export function isRateLimited(text: string): boolean {
|
|
|
65
65
|
return /\b429\b|rate.?limit(ed)?|too many requests|overloaded|quota exceeded|resource exhausted/i.test(text);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
+
/** Strip the model's reasoning blocks so they do not pollute the merged brief. */
|
|
69
|
+
export function stripThinking(text: string): string {
|
|
70
|
+
return text
|
|
71
|
+
.replace(/<think>[\s\S]*?<\/think>/gi, "")
|
|
72
|
+
.replace(/<thinking>[\s\S]*?<\/thinking>/gi, "")
|
|
73
|
+
.replace(/\n{3,}/g, "\n\n")
|
|
74
|
+
.trim();
|
|
75
|
+
}
|
|
76
|
+
|
|
68
77
|
/** Run one sub-explorer. Never throws; always resolves to an ExplorerResult. */
|
|
69
78
|
function runOneExplorer(spec: ExplorerSpec, opts: FanoutOptions): Promise<ExplorerResult> {
|
|
70
79
|
return new Promise((resolve) => {
|
|
@@ -175,7 +184,10 @@ export async function runExploreFanout(
|
|
|
175
184
|
if (batchResults.some((r) => r.rateLimited)) concurrency = 1;
|
|
176
185
|
}
|
|
177
186
|
const ok = results.filter((r) => r.ok && r.text.trim());
|
|
178
|
-
const merged = ok
|
|
187
|
+
const merged = ok
|
|
188
|
+
.map((r) => `### Exploration — ${r.focus}\n${stripThinking(r.text)}`)
|
|
189
|
+
.filter((block) => block.trim().length > 0)
|
|
190
|
+
.join("\n\n");
|
|
179
191
|
return { results, merged, rateLimited: results.some((r) => r.rateLimited) };
|
|
180
192
|
}
|
|
181
193
|
|