e250991fe2
CI / test (push) Has been skipped
CI / build-images (push) Has been skipped
CI / push (push) Has been skipped
CI / secrets-scan (push) Successful in 6s
CI / sast (push) Successful in 13s
CI / vuln-scan (push) Successful in 14s
CI / lint (push) Successful in 28s
CI / image-scan (push) Has been skipped
CI / secrets-scan (pull_request) Successful in 6s
CI / sast (pull_request) Successful in 13s
CI / build-images (pull_request) Successful in 3m28s
CI / push (pull_request) Has been skipped
CI / vuln-scan (pull_request) Successful in 15s
CI / test (pull_request) Successful in 25s
CI / lint (pull_request) Successful in 27s
CI / image-scan (pull_request) Successful in 24s
The tick engine used to walk every layer's upgrades on every buyable on every layer per tick (O(L² × U), ~10K predicate checks/sec at 10 Hz). Now built once per tick into a Map-backed index and read from there. Numbers, breakdown order, and entry detail are unchanged — pinned by new equivalence tests across production, click power, requirement, gain, buyable, wildcard fan-out, and the three challenge debuffs. Pairs with an opt-in display.performance_mode toggle that halves the tick rate (10 Hz → 5 Hz) and skips cosmetic animations (resource pulse, code-scroll backdrop, click-pop floaters) for older hardware. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>