Repository navigation
Commit b2b5984
feat(validation): arm every open question before the drive, not after it
CP-055. Eleven tickets end "verified on the JVM, never on the car", and each
of them names a different question. Answered one at a time, each costs a
drive, a parking space and an evening; the owner has one vehicle and one
life. So the questions get answered together, and the only way that works is
if everything is armed before departure and records itself.
Nothing here can be operated while driving, and that is a requirement rather
than a convenience: an instrument that needs a tap at 130 km/h is a hazard,
so it was not built. The recording sits at the decisions themselves — the
permission result, the position or its absence, the routing response, its
sections, the charger search including each way out of it, the what-if rows
or its refusal, and the consumption fit — because that is where the truth
is, and a screen that has to be visited is a screen someone forgets.
One artifact, eight named blocks, against the letter of the ticket's scope.
The exporter bundles at most eight evidence files and keeps the newest;
eight validation files would evict the guidance trace, the signal statistics
and the trip record from the very bundle they are meant to travel in. Every
question keeps its own block, and they share a file.
An empty block is an answer. `ValidationQuestion` carries what would have
made each probe fire, so a question that recorded nothing says so and says
why — "no chargers came back" and "the search never ran" close different
tickets, and a blank would not tell them apart. The file is written even
when the toggle was off, because "it was off" explains every empty block and
a missing file explains nothing.
Question 2 can only be read at the start of a process: once any screen has
asked for location, "was it granted without a prompt" is no longer
observable. So arming happens in `ChargePilotApp`, before anything else, and
the checklist says to arm and then restart.
Stable is a no-op whose `record` never invokes its lambda, so a stable build
does not even construct the strings. Binder calls run on their own thread: a
head unit that answers slowly is a finding, one that hangs the UI thread of
a moving car is not.
What leaves the car is stated in the artifact's own notes. No API key, no
typed destination, no origin coordinate. It does carry the names of roads on
the route driven and the raw bytes of the navigation transactions CP-051
asks about, which may hold the destination set in the car's own navigation —
so the checklist says to pick a destination worth sharing. The alternative
was a probe that cannot answer the question it exists for.
`analysis/CP-055_validation_drive.md` is written for someone who has not
read this repository, including the owner six weeks from now.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>1 parent 98b2513 commit b2b5984
16 files changed
Lines changed: 775 additions & 9 deletions
File tree
- analysis
- app/src
- main/java/com/evsuite/chargepilot
- stable/java/com/evsuite/chargepilot
- testUnstable/java/com/evsuite/chargepilot
- unstable
- java/com/evsuite/chargepilot
- res
- layout
- values-fr
- values
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
9 | 24 | | |
10 | 25 | | |
11 | 26 | | |
| |||
| 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 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
104 | | - | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
105 | 110 | | |
106 | 111 | | |
107 | 112 | | |
| |||
183 | 188 | | |
184 | 189 | | |
185 | 190 | | |
186 | | - | |
187 | | - | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
188 | 208 | | |
189 | 209 | | |
190 | 210 | | |
| |||
237 | 257 | | |
238 | 258 | | |
239 | 259 | | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
240 | 263 | | |
241 | 264 | | |
242 | 265 | | |
| |||
247 | 270 | | |
248 | 271 | | |
249 | 272 | | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
250 | 279 | | |
251 | 280 | | |
252 | 281 | | |
| |||
270 | 299 | | |
271 | 300 | | |
272 | 301 | | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
273 | 319 | | |
274 | 320 | | |
275 | 321 | | |
| |||
309 | 355 | | |
310 | 356 | | |
311 | 357 | | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
312 | 373 | | |
313 | 374 | | |
314 | 375 | | |
| |||
358 | 419 | | |
359 | 420 | | |
360 | 421 | | |
361 | | - | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
362 | 426 | | |
363 | 427 | | |
364 | 428 | | |
365 | 429 | | |
366 | 430 | | |
367 | | - | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
368 | 438 | | |
369 | | - | |
370 | | - | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
371 | 457 | | |
372 | 458 | | |
373 | 459 | | |
| |||
636 | 722 | | |
637 | 723 | | |
638 | 724 | | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
639 | 729 | | |
640 | 730 | | |
641 | 731 | | |
| |||
655 | 745 | | |
656 | 746 | | |
657 | 747 | | |
| 748 | + | |
| 749 | + | |
658 | 750 | | |
659 | 751 | | |
0 commit comments