voyage/tests
Kjell Tore Guttormsen def6c05384 fix(research-loop-cap): floor the turn cap before the guard, not after
A fractional TREKRESEARCH_MAX_CONV_TURNS below 1 cleared the `n <= 0`
guard on its raw value and only then floored, so '0.5' and '0.9' became
0 and the budget became 0 x MAX_TOTAL_DIMENSIONS = 0: every turn denied,
the loop silently dead rather than bounded.

README.md:229 and docs/architecture.md:15 both promise that invalid
values fall back to 3. docs/command-modes.md:42 enumerated "empty,
non-numeric, zero, or negative" and happened to sidestep the case; the
enumeration is now exhaustive about it.

Measured before: '0.5' -> 0, '0.9' -> 0, '2.7' -> 2, '' / 'abc' / '-2'
/ '0' -> 3. Measured after: '0.5' -> 3, '0.9' -> 3, '2.7' -> 2, and
'Infinity' -> 3 (it is not a cap either).

A cap of 0 is not a narrower cap, it is an off switch. The tests pin
both directions: the fraction falls back, and allowTurn cannot report a
budget of 0 under it.

Review finding fc516799e6042e246a4b62d81903ac27c2efab84 (MINOR).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LuGhWAbWyRFBFeemfhxoVv
2026-08-12 22:46:35 +02:00
..
commands fix(research-loop-cap): resolve the data root in code so the loop can run 2026-08-12 22:26:46 +02:00
fixtures feat(trekresearch): emit and export the five STORM measurement fields 2026-08-09 15:01:15 +02:00
helpers chore(ultraplan-local): Spor 0 — foundation for v3.1.0 kvalitetsprogram 2026-05-01 05:27:44 +02:00
hooks fix(research-loop-cap): resolve the data root in code so the loop can run 2026-08-12 22:26:46 +02:00
integration chore(voyage): release v5.0.0 — remove bespoke playground + /trekrevise + Handover 8; render produced artifacts to HTML + link, annotate via /playground 2026-05-12 14:05:07 +02:00
lib fix(research-loop-cap): floor the turn cap before the guard, not after 2026-08-12 22:46:35 +02:00
parsers chore(voyage): release v5.0.0 — remove bespoke playground + /trekrevise + Handover 8; render produced artifacts to HTML + link, annotate via /playground 2026-05-12 14:05:07 +02:00
scripts fix(storm-measure): restore the pre-registered OR decision rule 2026-08-12 22:15:07 +02:00
synthetic chore(voyage): S34 — V30 economy-profile self-declares experimental (uncalibrated Jaccard floor) 2026-06-20 10:18:38 +02:00
validators fix(validators): hard-block the token formats the run-length patterns missed 2026-08-12 22:03:43 +02:00