<feed xmlns='http://www.w3.org/2005/Atom'>
<title>newos4/downloads/system-info.html, branch main</title>
<subtitle>newOS4 - the browser terminal that runs WebX11 user spaces</subtitle>
<id>https://newos.webx11.duckdns.org/newos4/atom?h=main</id>
<link rel='self' href='https://newos.webx11.duckdns.org/newos4/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://newos.webx11.duckdns.org/newos4/'/>
<updated>2026-10-23T15:38:10+00:00</updated>
<entry>
<title>fix(newos4): measure predictor accuracy over paired predictions (v4.6.56)</title>
<updated>2026-10-23T15:38:10+00:00</updated>
<author>
<name>Agando</name>
<email>roduccomm@gmail.com</email>
</author>
<published>2026-10-23T15:38:10+00:00</published>
<link rel='alternate' type='text/html' href='https://newos.webx11.duckdns.org/newos4/commit/?id=895d8f5ed57c76f25770f88f290e6ab93949b6f8'/>
<id>urn:sha1:895d8f5ed57c76f25770f88f290e6ab93949b6f8</id>
<content type='text'>
The accuracy readout was structurally 0%: module-predictor.js:187 incremented the
denominator on every observed run while the numerator only moved when a stored
prediction existed, and predictions were stored only by the manual `predict`
command (the AI tool predict_task computed one and discarded it). Replaying the
AI loop's own call path with 6 tasks printed "Predictions made: 0, Accuracy: 0/6".

- pending predictions with a 15m TTL, consumed by threaded id -&gt; task hash -&gt;
  cli-only similarity &gt;= 0.5; unpaired runs never enter the denominator
- duration scored within 30% or 3s (integer predictions vs fractional observations)
- errorPct capped at 500% so one miss cannot poison the mean error
- schema v2: v1 correct/total counters dropped on load, observed runs and the
  prediction counter kept; task text stored as an FNV-1a hash only
- tuning (confidence-threshold, min-data-points, pair-ttl) persists
- min-data-points now scales confidence (was declared, printed, settable, unread)
- AI loop registers a prediction per turn and threads its id; predict_task
  returns predictionId; durations exclude chat-lock queue wait
- status/dashboard say "n/a" instead of "N/A%", and carry paired count, mean
  error, turns error, pending and unpaired counts
- test: modules/test/test-predictor-accuracy.js (26 assertions)

Live on main.html v4.6.56: fresh session -&gt; "Accuracy: n/a (0/0 paired)";
one paired run -&gt; "100% (1/1 paired) - mean error 5% - turns +-0.0".
</content>
</entry>
</feed>
