ReviewOS

stacks/the-settlers-iii-remake

Select reachable planting ground before limiting forester candidates

#233
Closed chris opened this 16 hours ago ·
16 hours ago

A forester can remain at no-space indefinitely even when reachable planting ground exists inside its selected working area. The production selector truncates plantable tiles to the nearest eight before checking routes. Eight disconnected island tiles can hide all reachable mainland candidates.

Parent: https://github.com/stacksjs/the-settlers-iii-remake/issues/43

Reproduced through the public session, authored map description and work-area command on afea78e3e0a6d3da88ce906bd1e57ee97fb12eb0. A radius-two grass island inside radius-three water at (48,40) occupies the nearest planting candidates. A mainland forester reports no-space after 1,000 ticks. Moving the work-area center four tiles makes the same worker plant on reachable land still within the original radius.

Acceptance:

  • Select a bounded set of nearest reachable planting candidates, then retain deterministic seeded choice among them.
  • Respect ownership, working area, terrain, existing objects and claims. A truly unreachable area still reports no space.
  • Preserve previously published rules behavior through an explicit versioned policy and frozen 0.17 profile.
  • Exercise normal commands, disconnected terrain, save/restore, replay, and conservation through maintained public interfaces.
  • Retain red/green evidence, rules digests, relevant lint/type/build/unit results, and actual browser evidence where appropriate.

This corrects an internal contradiction in the authored engineering profile. It does not establish original Gold planting radius, timing, distribution or balance. Parent #43 remains open for its full fidelity acceptance.

16 hours ago

Implemented and pushed as Chris in d49b4eeafdf2c0febb64806f68fc61cec3e69089, without coauthor trailers. Planting and cultivation now collect up to eight nearest eligible reachable tiles through the ordinary worker router before seeded selection. The immutable 0.17 profile keeps digest 2939e347b6e11f4f3a7d4ee578f6c07f3e79bdb1ab6d4e891b9144ff2f1a6189; new 0.18 digest is 3cf77dcb95b710d1406627898c294fb16d07f1ca37aec6be607188d44b8dd03a.

Retained red/green public reproduction, eight focused cases (8,894 assertions), all 497 unit tests (94,684 assertions), app/tools/STX types, zero-error/warning lint, production views build and asset provenance checks. Real browser working-area and production scenarios passed 76 steps with empty console/network/collection error arrays; both actual screenshots were inspected locally. Local evidence: implementation receipt.

Exact-source CI 41397879438 is running. This issue stays open until hosted acceptance is verified. Parent #43 retains its original Gold fidelity requirements; this change establishes engineering route recovery only.

15 hours ago

The first exact-source CI passed units, lint, types, assets and build, then caught a campaign-test race at the tutorial Save acknowledgement. Original artifact 13120930818 (5,349 bytes, SHA256 a3835203b7a7c80f95017275dbac3c300e07eb0f8178d308ea050a8180828022) was independently verified, including ZIP CRCs. It has no console/network/collection errors, and its final page already contains the correct saved acknowledgement.

Three controlled runs on the actual production UI reproduced the immediate assertion failure while the real storage lock held the commit. Releasing the lock produced the acknowledgement in 817 to 1,648 ms, and real reloads restored the tutorial and all 51 settlers. Production storage and controller methods were not patched.

Pushed fb77ab1c8e811717b9b3a170406916b78cc5dfc5 as Chris without coauthors. Campaign assertions now await the exact acknowledgement within the existing two-second completion budget used by other save checks; two fixed sleeps were removed. No app, storage or framework behavior changed. The corrected full local campaign passed all 56 steps, with no browser errors; lint and tools types passed. Retained investigation receipt.

The complete corrected-source CI 41399911207 is running. This issue remains open until hosted acceptance is verified.

15 hours ago

Verified complete for this narrow engineering defect.

Implementation: d49b4eeafdf2c0febb64806f68fc61cec3e69089; asynchronous campaign-check correction: fb77ab1c8e811717b9b3a170406916b78cc5dfc5. Both were pushed normally as Chris without coauthors. All eight focused routing cases, 497 unit tests, type checks, lint, asset verification and production build passed. Published 0.17 rules retain their exact digest and behavior; 0.18 selects reachable planting ground through the ordinary router.

Exact corrected-source CI 41399911207 succeeded. Original artifact 13122086974 was independently verified against GitHub's SHA256 and size: 47,770 bytes, b92a04a675221fff83478b7b5c3fa4c89d1dd6b4aa1290cc6da98e88ebdf03fc, all ZIP CRCs valid. All 23 retained browser suites passed 1,031 steps, including nested scenario exit codes and available console/network/collection error arrays. The previous immediate-save assertion failure is retained and explained in the committed acknowledgement receipt.

Exact-source protected production deployment 41403335338 succeeded, including the actual Deploy and public smoke steps; rollback was skipped. Independently repeated all ten live GET checks, including both WebP decodes and the signed-out /play redirect to same-origin login.

Parent #43 stays open for original Gold timings, radii, production and fidelity acceptance. This completion establishes the reachable-candidate correction, conservation, compatibility and delivered behavior only.

Sign in to comment on this issue.