diff options
Diffstat (limited to 'help.html')
| -rw-r--r-- | help.html | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -484,6 +484,18 @@ diff a.txt b.txt</pre> <section id="commands"> <h2>📖 Full Command Reference</h2> + <div class="callout"> + <strong>⚠️ There is no shell.</strong> The terminal splits your line into argv and hands it to + one command — it does not interpret <code>;</code>, <code>&&</code>, <code>||</code> or + redirection. Those are now <em>refused</em> with an explicit message instead of being folded + into the command's arguments (which used to produce a plausible wrong answer): + <code>wc -l a && grep -c x a</code> → refused; run two commands. + A single <code>cmd | cmd</code> pipeline works in the interactive terminal (not in the AI + <code>run_command</code> tool). <code>wc</code>, <code>grep</code> and friends take + <strong>one path per call</strong> unless documented otherwise — <code>wc -c a b</code> now + prints a line per file plus a <code>total</code>. + </div> + <h3>System</h3> <div class="table-wrap"><table> <tr><th>Command</th><th>Description</th><th>Example</th></tr> @@ -1660,6 +1672,17 @@ listmods</pre> <h2>📋 Changelog</h2> <div class="version-item"> + <div class="v-header"><span class="v-num">v4.6.57/58 — October 2026</span><span class="v-date">2026-10-23</span></div> + <ul> + <li><strong>No shell — and it now says so</strong> — <code>;</code>, <code>&&</code> and <code>||</code> are refused with an explicit message instead of being folded into the command's argv (where <code>wc -l f && grep -c x f</code> returned a plausible wrong number). A <code>|</code> arriving from the AI <code>run_command</code> tool is refused too, because that path bypasses the pipe splitter and degraded the pattern to empty. Documented at the top of the command reference.</li> + <li><strong>Multiple paths in <code>wc</code></strong> — <code>wc -c a b</code> printed only <code>a</code> and exited clean. It now prints one line per file plus a <code>total</code>, and reports each missing file separately.</li> + <li><strong><code>ls</code> prints text</strong> — it rendered only clickable chips (DOM-only), so any capture — the AI <code>run_command</code> tool, the diagnostics sweep — saw an empty result and reported "directory empty".</li> + <li><strong><code>view_module</code> shows what is deployed</strong> — it returned the <code>_mods/<Class>.js</code> edit cache first, unversioned, so after a rebuild it showed pre-fix source while the bundle was new. It now fetches the deployed file and prefixes the version; the cache is a labelled fallback.</li> + <li><strong>Predictor arithmetic</strong> — the stored field named <code>mape</code> held a sum, so any JSON consumer read a mean that was <em>n</em> times too large (now <code>errorSum</code>); <code>errorPct</code> is stored raw and clamped only at render (a 475× miss used to be flattened to 500%); predictions are floored at 1 s and floor-hits are not scored, because one 0.079 s aborted run was rounding the next prediction to 0 s.</li> + </ul> + </div> + + <div class="version-item"> <div class="v-header"><span class="v-num">v4.6.56 — October 2026</span><span class="v-date">2026-10-23</span></div> <ul> <li><strong>Predictor accuracy was structurally 0%</strong> — the denominator counted every observed run while the numerator only moved when a <em>stored prediction</em> matched, and predictions were stored only by the manual <code>predict</code> command. Unpaired runs no longer enter the accuracy denominator; the AI loop now registers a prediction per turn (<code>notePrediction</code>) and <code>predict_task</code> returns a tracked <code>predictionId</code> instead of discarding its estimate.</li> |