ReviewOS

stacks/the-settlers-iii-remake

fix(ai): recover stone production when unfinished sites consume the site limit

#191
Closed chris opened this 8 days ago ·
8 days ago

A broader normal-map probe after the mineral-expansion source change found an economic deadlock in rival seed 3. At tick 60000, the AI has 35 carriers and real builders, but the fisher (id 1430) and iron mine (1497) each have one work unit left and need one stone. No stone stacks or stonecutter remain. The two unfinished sites occupy the planner's site limit, so it issues no recovery orders. The conservation audit is clean and no enqueue was rejected.

The observed source gap is in the economic planner: material bootstrap diagnoses planks, while an exhausted stone chain can leave construction permanently waiting. Builders and delivery are behaving consistently with the missing good. The fix needs ordinary recovery commands and a physical replacement stone-production route, including freeing a site or reserving a bootstrap budget as appropriate. Do not supply free stone, raise stock, skip construction, loosen conservation, or inject hidden resource knowledge.

Reproduction: ordinary rivalSession(3), economicAI(2, { military: RIVAL_MILITARY }), default interval, 60000 integer ticks. The current source is based on main 6583568 plus the pending known-mountain/pioneer mineral-expansion change. Local evidence retains the exact checkpoint, checksum, source hash, public observation and final decisions. A broader 1/3/21/42/99 probe did not finish a battle within 60000 ticks; only seed 3 has been diagnosed here. Seed 2 completes at tick38341 and is not sufficient to claim all seeds.

Related: #73, #76. This defect remains open while the browser driver source release and current mineral-expansion slice are qualified.

8 days ago

The source fix and retained regressions are prepared on the game branch. The captured seed-3 save now resumes stone production and both waiting sites are observed to complete using actual civilian demolition refunds, a real stonecutter and normal deliveries. Created goods stay unchanged and the conservation audit is clean. A smaller scenario also recovers after constructing a residence consumes its last initial stones. The original save is retained with SHA-256 1b4676a8bf291ece7d63cf49aae71e3338f3c978cb2f6639dce8b488bb5087e6 and its captured source hash.

The planner gives the stone bootstrap priority while outstanding sites consume scarce material and uses ordinary pioneers toward known resource sites. Military buildings and the timber chain remain protected. It also avoids placement searches when no pioneer can act. The existing delivery/restore regression initially exceeded its unchanged five-second limit; a real Bun CPU profile located repeated placement validation, and it now passes in about 1.13 seconds without weakening its assertions or timeout.

The recovery suite passes 25 tests/317 assertions. The ordinary seed-2 full battle with a fresh-AI mid-game restore also passes on the combined functional change. A full run initially had 268 passes and one new assertion failure because an exhausted fisher had legitimately been demolished after completion. The corrected regression records each actual completion when observed and passes; final full-cohort checks remain pending.

Stacks 0.75.310 has passed its exact source CI and native release gate and is checking the published installation. Normal adoption, full browser acceptance, and the final main push will follow publication qualification. This remains a specific stone-recovery fix, not proof that all random seeds or Gold Edition AI behavior are complete.

8 days ago

Pushed to main as Chris without coauthors: bfa7cb4 mineral progression, c5b0f55 stone recovery, and 85ac0f1 qualified framework adoption.

The ordinary seed-2 rival surveys known land, uses real pioneers to reach resources, constructs mines, produces iron and weapons, and defeats a passive player at tick 38,441 with a clean conservation audit. A fresh-AI mid-game restore matches. The captured seed-3 material deadlock now resumes stone production through actual civilian refunds and a real stonecutter. The map-seed field and both unsigned seed endpoints survive ordinary checkpoints.

Installed Stacks 0.75.310 qualification passed all 95 selected original package trees and all seven consumer checks. Ten browser suites passed 385 steps with zero recorded console, network or collection errors. The complete battle ran 612,342 ms through the normal 4x control, reached defeat, then saved and reloaded the same seed and outcome. The execution receipt retains identity and pacing samples; original rasters remain local.

Exact main CI40208919317 is running. Keeping the broader roadmap open: this proves one passive-player Roman engineering battle, not a human victory, every seed, religious AI, original Gold balance/timing, all civilizations or native application completion.

8 days ago

Exact main CI 40208919317 succeeded on 85ac0f1, which remains origin/main. The original job log confirms 272 unit tests, zero failures, 22,758 assertions.

The original campaign-browser-check artifact 12604504234 is 19,659 bytes. Its SHA-256 481b25aad73ed1cad91acf0c5bb7e1137055e895aaedf5b9f6522c852275d3f4 matches GitHub's digest, every ZIP CRC passes, and every recorded assertion across 385 browser steps passes with zero console, network or collection errors. The complete normal seed-2 battle ran 610,472 ms, reached defeat, then acknowledged save and passed the seed/outcome assertions after a real reload. The archive contains diagnostics and media identities only, with no original raster upload.

This qualifies the specific source fixes and the published Stacks 0.75.310 adoption recorded in the source/publication and browser acceptance receipts. The broader roadmap remains open for human-victory coverage, all seeds, factions, religious AI, original Gold balance/timing, campaigns and complete native applications.

Sign in to comment on this issue.