@phi-code-admin/phi-code 0.93.1 → 0.93.2
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.93.2] - 2026-07-12
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- /fix: a single shot that changed NOTHING (text-only reply, zero edits — a
|
|
8
|
+
measured 91s failure mode) no longer ends UNVERIFIED; in a git repo with a
|
|
9
|
+
clean tree it ESCALATES to the full pipeline (nothing to verify = the work
|
|
10
|
+
was not done). The shot instruction now states that acting with tools is
|
|
11
|
+
mandatory and a textual plan forfeits the attempt. +1 integration test.
|
|
12
|
+
|
|
3
13
|
## [0.93.1] - 2026-07-12
|
|
4
14
|
|
|
5
15
|
### Fixed
|
|
@@ -1364,6 +1364,20 @@ Tag the note with relevant keywords for vector search.
|
|
|
1364
1364
|
fixContext.state.failingTest?.trim() || fixContext.state.reproCommand?.trim() || fixContext.reproFromShot;
|
|
1365
1365
|
const suiteCmd = sandbox.recipe.test?.trim();
|
|
1366
1366
|
|
|
1367
|
+
// A shot that changed NOTHING has nothing to verify — "UNVERIFIED" would be
|
|
1368
|
+
// a lie of omission (measured: a text-only 91s shot ended UNVERIFIED with
|
|
1369
|
+
// zero edits). In a git repo with a clean diff, escalate to the full
|
|
1370
|
+
// pipeline instead: the work simply was not done.
|
|
1371
|
+
const inGitRepo = passed(runCommand("git rev-parse --is-inside-work-tree", { cwd, timeoutMs: 15_000 }));
|
|
1372
|
+
if (inGitRepo && !gitIn(cwd, "diff").trim() && !gitIn(cwd, "status --porcelain").trim()) {
|
|
1373
|
+
ctx.ui.notify(
|
|
1374
|
+
`\n🔺 **/fix escalating: the single shot made NO changes** — nothing to verify, the full /debug pipeline takes over.`,
|
|
1375
|
+
"warning",
|
|
1376
|
+
);
|
|
1377
|
+
phaseQueue.push(...buildDebugPhases(fixContext.state));
|
|
1378
|
+
return false; // dispatch REPRODUCE
|
|
1379
|
+
}
|
|
1380
|
+
|
|
1367
1381
|
if (!sandbox.available() && (reproCmd || suiteCmd)) {
|
|
1368
1382
|
ctx.ui.notify(
|
|
1369
1383
|
`\n⚠️ **/fix oracle: sandbox unavailable** (${sandbox.reason}) — the single shot cannot be verified. Treating it as UNVERIFIED.`,
|
|
@@ -126,6 +126,8 @@ export function singleShotInstruction(state: FailingState): string {
|
|
|
126
126
|
**The problem:**
|
|
127
127
|
${failing}
|
|
128
128
|
|
|
129
|
+
**You must ACT in this turn — call the read/edit/write tools and actually change the code. A textual plan or analysis with no edits counts as a FAILED shot (measured failure mode) and forfeits your attempt to the full pipeline.**
|
|
130
|
+
|
|
129
131
|
**Do exactly this:**
|
|
130
132
|
1. Read the relevant code and locate the root cause.
|
|
131
133
|
2. Make the smallest change that addresses it. Do NOT edit tests. Every added guard/branch is a liability.
|