# Regression Checklist Version: 15.24.33 This pass freezes the current internal baseline before continuing deeper behavior refactors. ## Scope - Static loading order must remain generated from `app_manifest.json`. - `index.html` and `service-worker.js` must match the manifest after `scripts/generate_app_files.py`. - JavaScript syntax must pass `node --check`. - `ActionSpec` lifecycle helpers must support `selectTarget / canStart / start / tick / finish / fail`. - Save-data migration is intentionally out of scope for this pass. - Population caps and family-tree UI are intentionally out of scope. ## Command ```bash python3 scripts/regression_check.py ``` Expected result: all checks print `[OK]` and exit with status 0. ## 15.24.28 runtime diagnostics When opening with `?debug=1`, verify the overlay reports spatial rebuilds, draw-list state, item bucket/id-map state, forced/locked behavior counts, and top behavior ids. These are observation aids only and do not change player controls or simulation rules. ## Social balance regression checks For `15.24.33+`, also verify: - Ordinary conflict does not crowd out `approach_friend` / `approach_mate` in a neutral population. - Fight mochi still forces conflict, but one individual should not start several fights at once. - Intimidation resolves quickly enough that it does not visually lock the colony. - With `?debug=1`, behavior counts should show non-conflict social actions appearing over time in a dense but non-drugged population. ## 15.24.33 runtime item-bucket checks - Runtime-created items should go through `World.addItem()` where safe. - `World.itemsOfType()` should call `ensureItemBuckets()` before returning a bucket. - `World.itemById()` should not return dead items. - The debug overlay should expose item bucket dirty state, id-map size, and bucket rebuild counters. - Save migration remains out of scope until this runtime polish is observed in-browser.