ReviewOS

stacks/the-settlers-iii-remake

Choose reachable resting tiles without civilian retry storms

#201
Closed chris opened this 9 days ago ·
9 days ago

The off-axis scouting candidate exposes a real engine resting-placement failure in an ordinary passive-player seed2 battle. At tick26,000,12carriers share two occupied owned tiles and repeatedly order settle movement to nearby neutral tiles. The ordinary civilian router permits owned territory only, so the same target fails every tick (2,409expanded nodes per query). The resting selector currently accepts neutral candidates and searches geometrically through obstacles.

Captured examples: carrier85 from tile4534(owner2, holder102) to4536(owner0); carrier91 from4407(owner2, holder101) to4408(owner0). Both destinations are passable, but are outside legal civilian movement. No world, goods, settler, terrain or clock edits. Captured profile0.10.0 on base main340ddc2 plus the staged #200source hashes; generated fixture/provenance retained locally, no original media.

The unchanged battle test now takes479seconds, remains playing at its existing50,000tick bound and fails; its declared120secondtimeout is retained. CPU profiling attributes67.6%inclusive time to tickSettler, dominated by repeated A* failures. A normal26,000to27,000tick diagnostic takes10.9seconds, checksum90cb4942 and clean conservation. This is civilian resting movement, not a combat-cache defect. No memoization, timeouts or game speeds have been changed.

Acceptance:

  • Reproduce the captured contradiction through public Session execution and normal profile/setup commands.
  • Select a genuinely free reachable resting tile through the same enterability, elevation and civilian-territory rules as ordinary movement. Use normal movement, no direct relocation or visibility/goods grants.
  • If no legal free destination is reachable, do not keep issuing the same impossible movement program every tick.
  • Version the changed simulation behavior, freeze published0.10.0, and retain exact older-save/replay behavior. New default rules remain explicitly engineering evidence.
  • Test normal seeded progression, reachable/neutral/blocked boundaries, goods/people conservation and mid-movement restore. Retain before/after profiles without flaky wall-clock unit assertions.
  • Pass the original battle bound, full source/browser acceptance and exact pushed-main CI; do not increase deadlines or skip the failing scenario.

Related #200, #76, #73, #74 and #4. This issue blocks publication of the current scouting candidate. Framework packages remain unchanged.

8 days ago

The combined #200/#201 source is implemented and staged, not published yet. Scouting retains the existing rotation until all six rays are explored, then sends an eligible own troop to a known reachable frontier. Native movement-edge reachability excludes hidden terrain, unreachable islands and foreign soldier IDs; one guard per garrison remains.

The first scouting candidate exposed12civilian resting programs aimed at neutral land, which ordinary civilian routing forbids. Repeated failed A* searches made the original battle test fail after479seconds, and the full real-time browser battle also failed. Those attempts are retained. New engineering profile0.11.0 restricts nearby rest candidates to the ordinary reachable component, using normal movement and the prior400candidate bound. No grants, direct relocation, route-cache patch, deadline increases or speed changes. The exact published0.10profile remains frozen; its captured26001checksumf5184e9d/save/replay still pass. An explicit separately identified new-profile scenario demonstrates the new movement from the captured physical state; it is not an automatic save upgrade.

Current checks:309unit tests pass,0fail,23062assertions/43files; lint/type/assets/fidelity/roadmap/build pass. The original passive battle passes at its unchanged50000tick/120secondlimits. A matched1000tick diagnostic retains12invalidrestorders under0.10(10.5seconds) and resolves them under the explicit0.11scenario(0.18seconds), with unchanged created goods/clean accounting. These timings are diagnostics, not flaky unit thresholds.

The shared5tick fixture matchesc331a944 in Bun, Chrome and the original verifiedCraft0.0.341executable, including save/replay. This is headless engine evidence, not native presentation.

Fresh production browser acceptance has passed the first8suites and is finishing the full ten-real-minute4xbattle/save/reload. The passive command diagnostic ends39721without failed executions. Ordinary two-policy seeds1and5finish31801/72501; seed2's normal continuation finishes109841. Seed3remainsunfinished200000 withclean accounting/valid commands; #202 tracks its missing Roman charcoal-planning route. Broad73/74/76/4stayopen.

Publication and exact pushed-main CI/original385step artifact remain required before closure. Published framework311/STX691/Craft341/Pantry127 and locks are unchanged.

8 days ago

Delivered in 8d8a2b70a4202ba6773a3c94d4eef850cb8c4fa3, normally FF pushed to origin/main as Chris Breuer without coauthors.

The combined source retains six-ray rotation until all rays are explored, then chooses known reachable frontier with eligible own soldiers. Sole guards, prior choices and visibility boundaries remain protected. New engineering profile0.11.0 restricts nearby resting candidates to the ordinary movement/territory component, using normal movement and the existing400candidate bound. No relocation, grants, route-cache patch, speed or deadline changes.

Verification:

  • All309unit tests pass,0fail,23062assertions/43files; lint/type/assets/fidelity/roadmap/production build pass.
  • Frozen0.10profile digestac7a5d... and original save/replay retain tick26001checksumf5184e9d. The explicit0.11captured-state scenario is separately identified, not a save upgrade.
  • Actual frontier march reveals land beyond an unchanged control and matches mid-march restore. Matched resting diagnostic resolves all12invalidneutralorders, with unchanged created goods/clean accounting.
  • Fresh local385browsersteps pass without console, request or collection errors, including full ten-real-minute4xbattle/save/reload. Same original battle bounds retained; earlier failed candidates remain recorded.
  • Bun/Chrome/original verifiedCraft341executable match the5tickc331a944save/replay fixture. Headless only; native presentation stays open.

Exact-main CI40239518085 succeeded. Original artifact12617125955,19644bytes, SHA256 f0b98cdc3f6a6a0ee6ce8be1159c9287e58802d33acbe506685f4e57dc0abe1b matches GitHub digest. EveryZIPCRC/all385successful steps/empty browser error arrays verified.

Ordinary two-policy seeds1and5finish31801/72501; seed2normalcontinuation finishes109841. Seed3remainsunfinished200000, all withvalid commands/clean accounting. #202 retains the missing Roman charcoal-planning route and is in progress. The dated committed receipt records source/rule/fixture identities and limits. Closing only the scoped #200/#201 corrections. #73/#74/#76/#4 remain open for broader AI, human victory, all-seed sustainability, Gold rules/content and native acceptance.

Sign in to comment on this issue.