57 lines
3.1 KiB
Markdown
57 lines
3.1 KiB
Markdown
# Radio intel progression — native checks, 21 October 2026
|
|
|
|
The isolated Workbench mission completed **12 assertions with no script/runtime
|
|
failures**. It used real player inventory, prepared sites, the normal discovery
|
|
service and the actual radio-defence entry point. The runner verified source and
|
|
external inputs and cleanup of its private prefix.
|
|
|
|
The strict whole-engine reporter exits 1 because of 13 existing resource/world
|
|
errors, matching the earlier standard body-burial run. They are retained without
|
|
filtering in [native/report.json](native/report.json) and the complete console log.
|
|
This is a successful feature fixture, not a clean whole-engine verdict.
|
|
|
|
The fixture verified:
|
|
|
|
- Default five-site requirement starts locked after preparation.
|
|
- A fixed radio document in actual player inventory stays unspent and reveals
|
|
nothing before the threshold, including after four distinct identifications.
|
|
- Native line of sight and the normal site observation tick identify a nearby
|
|
radio while radio intel remains locked.
|
|
- The real `TuneRadio` / radio-defence service starts while intel is locked.
|
|
- Identifying the fifth non-radio site unlocks intel. The ordinary discovery tick
|
|
automatically processes the held document and identifies its target, retaining
|
|
the physical objective document.
|
|
|
|
Five eligible sites are provided by the historical medical stash/outpost plus
|
|
three fixture-only supply locations. A second real radio entity is the document
|
|
target so early physical discovery of the original radio does not invalidate the
|
|
later document assertion. No installed addon or live server is modified.
|
|
|
|
`tests/test_radio_intel.py` executes the production gate, recovery, assignment and
|
|
retarget methods against explicit native API doubles. It covers exclusions,
|
|
duplicate IDs, rough versus exact knowledge, sticky unlock, sparse/preparing
|
|
worlds, next-round edits, disabled gating, redirection/evidence, held fixed clues,
|
|
no alternative target and ownership/lifecycle rejection. Settings/menu/feedback
|
|
regressions cover migration, ranges, command routing and non-repeating notices.
|
|
The historical Core smoke arranges its remaining eligible outpost identification
|
|
before its separate document ownership checks, accommodating the new default.
|
|
|
|
Reproduce using installed dependencies and the existing private Workbench prefix:
|
|
|
|
```
|
|
python3 docs/evidence/radio-intel-2026-10-21/isolated-runner.py next01
|
|
python3 tests/test_radio_intel.py
|
|
```
|
|
|
|
Choose an unused alphanumeric suffix. The runner freezes source into `/tmp` and
|
|
uses a disposable profile. This scripted local mission does not establish remote
|
|
multiplayer UI/RPC presentation or ordinary human input timing.
|
|
|
|
Repository validation covered every check in `tools/check.py`. The full run
|
|
stopped at an older help-line-count assertion; the resumed sequence stopped at
|
|
an older Intel-summary test double. Both were updated for the new setting and
|
|
rerun successfully, then all 134 remaining checks passed. The ordered transcripts
|
|
are retained in [validation](validation/); earlier failures there are test-adapter
|
|
mismatches corrected by the following run, not outstanding failures. Menu source
|
|
regeneration and `git diff --check` also passed.
|