Commit 35c8bcf
authored
fix: m2 wave-3 bug sweep — JSON-decoded narrate paths, expandEnv tail preservation, strict numeric flags (#192)
Three RED-first fixes, each pinned by failing tests on main:
1. narrate (LOW): extractPath scanned for the first quote pair instead of
decoding JSON — an escaped quote inside a path truncated it
("we\"ird.go" → "we\"). extractShell was fixed for exactly this
failure; extractPath now decodes JSON first with the same best-effort
scan fallback.
2. config (MED): an unterminated ${VAR reference consumed the ENTIRE
remaining config value — "a${b" expanded to "a$" — silent
config-value corruption (bare $ references preserved their tails, ${
did not). Unterminated and empty (${) braces now emit verbatim.
3. cmd/odek (LOW-MED): --max-iter, --thinking-budget, and --temperature
used unchecked fmt.Sscanf — "abc" was silently ignored
(--temperature even overwrote the value with 0) and "1800junk" was
accepted as 1800, hiding typos from the operator. All three now use
strconv and reject garbage, matching every sibling numeric flag
(--max-runtime, --max-tool-calls, ...). The pinned
TestParseRunFlags_MaxIterNonNumeric documented the Sscanf quirk as
intended; its contract is updated to the strict behavior with a
comment explaining the change.1 parent fb157a6 commit 35c8bcf
7 files changed
Lines changed: 125 additions & 16 deletions
File tree
- cmd/odek
- internal
- config
- narrate
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
12 | 13 | | |
13 | 14 | | |
14 | 15 | | |
| |||
469 | 470 | | |
470 | 471 | | |
471 | 472 | | |
472 | | - | |
473 | | - | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
474 | 477 | | |
475 | 478 | | |
476 | 479 | | |
| |||
491 | 494 | | |
492 | 495 | | |
493 | 496 | | |
494 | | - | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
495 | 502 | | |
496 | 503 | | |
497 | 504 | | |
498 | 505 | | |
499 | 506 | | |
500 | | - | |
501 | | - | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
502 | 511 | | |
503 | 512 | | |
504 | 513 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
574 | 574 | | |
575 | 575 | | |
576 | 576 | | |
577 | | - | |
578 | | - | |
579 | | - | |
580 | | - | |
581 | | - | |
582 | | - | |
583 | | - | |
584 | | - | |
585 | | - | |
586 | | - | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
587 | 584 | | |
588 | 585 | | |
589 | 586 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
875 | 875 | | |
876 | 876 | | |
877 | 877 | | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
878 | 883 | | |
879 | 884 | | |
880 | 885 | | |
881 | | - | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
882 | 890 | | |
883 | 891 | | |
884 | 892 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
100 | 100 | | |
101 | 101 | | |
102 | 102 | | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
103 | 123 | | |
104 | 124 | | |
105 | 125 | | |
| |||
0 commit comments