ouroboros/web
Andrei Kaznacheev 598c1c9659 threads: the refusal before destroying a checkout states the TRUE file count
`inspect_thread_worktree` capped `dirty_files` at 200 and recorded no total, so
`_removal_message` — the sentence an owner reads immediately before agreeing to
destroy a checkout — said "200 uncommitted file changes" when there were 800.
The safety gate itself held (the qualitative claim stayed true and destruction
still needs explicit acknowledgement); only the magnitude lied, by a factor of
four, at the worst possible moment.

`dirty_files_total` carries the real length beside the bounded listing, and every
surface that states a number states that one: the removal refusal, the delete
refusal and confirm copies (through `omitted_files`), the client's own
`removalPrompt` — which held the identical false sentence, so a server-only fix
would have been half a fix — and `successText`, so success and refusal cannot
disagree about the same checkout. Pluralisation fixed with it: "1 uncommitted
file change", not "changes".

Contract, JS mirror and field-level parity in this commit, per the plan's rule
that a frozen-contract change is coordinated and never incidental. Additive and
optional; a legacy inspection without the field reads as "the listing is the set".

Found by the paid gate; the client half and the plural were found while fixing it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-12 05:06:09 +04:00
..
modules threads: the refusal before destroying a checkout states the TRUE file count 2026-08-12 05:06:09 +04:00
providers feat(provider): add GigaChat via the gigachat library 2026-06-03 22:22:17 +03:00
tests threads: the refusal before destroying a checkout states the TRUE file count 2026-08-12 05:06:09 +04:00
__init__.py Initial commit from app bundle 2026-04-22 01:04:48 +03:00
app.js threads(I11,I12,I15,I16,I19): the sidebar states it could not see, and three holes with nothing behind them 2026-08-10 14:10:28 +04:00
chart.umd.min.js Initial commit from app bundle 2026-04-22 01:04:48 +03:00
favicon.png Initial commit from app bundle 2026-04-22 01:04:48 +03:00
index.html threads(T1): threads in the sidebar, and a thread opens in the CENTRE 2026-08-10 05:09:33 +04:00
logo.jpg Initial commit from app bundle 2026-04-22 01:04:48 +03:00
marked.min.js feat(v5): three-layer architecture + ClawHub Marketplace + visual skill widgets 2026-04-25 23:17:05 +03:00
onboarding.css front(D): flat restyle of Dashboard, Skills, Settings, Widgets 2026-08-09 14:59:52 +04:00
onboarding_template.html Initial commit from app bundle 2026-04-22 01:04:48 +03:00
package.json release v6.92.1: the managed Claudexor runtime pin moves to 3.3.13 2026-08-08 21:46:43 +03:00
purify.min.js feat(v5): three-layer architecture + ClawHub Marketplace + visual skill widgets 2026-04-25 23:17:05 +03:00
settings.css front(D): review round 1 fixes — live-token chart palettes, tone-edge calm-down, tab pin hardening 2026-08-09 15:00:37 +04:00
style.css threads(G3): an unavailable thread action is greyed, not only inert 2026-08-12 04:04:08 +04:00