fix: P2 offline progress cap + canvas combat tab-switch guard #186
Closed
Timmy
wants to merge 2 commits from
fix/p2-offline-combat into main
pull from: fix/p2-offline-combat
merge into: Timmy_Foundation:main
Timmy_Foundation:main
Timmy_Foundation:fix/endgame-project-suppression-v2
Timmy_Foundation:fix/endgame-project-suppression
Timmy_Foundation:beacon/polish-tooltip-descriptions
Timmy_Foundation:sprint/issue-187
Timmy_Foundation:fix/167
Timmy_Foundation:fix/57
Timmy_Foundation:fix/168-chain-validator
Timmy_Foundation:burn/167-1776218380
Timmy_Foundation:fix/15
Timmy_Foundation:fix/166
Timmy_Foundation:fix/5
Timmy_Foundation:fix/169-readme-file-map
Timmy_Foundation:fix/168
Timmy_Foundation:burn/17-1776218280
Timmy_Foundation:fix/162-reckoning-projects
Timmy_Foundation:burn/159-1776218380
Timmy_Foundation:burn/162-1776221407
Timmy_Foundation:fix/169-readme-runtime-docs
Timmy_Foundation:fix/162
Timmy_Foundation:burn/162-1776221269
Timmy_Foundation:burn/7-1776218274
Timmy_Foundation:burn/4-1776218382
Timmy_Foundation:burn/2-1776218283
Timmy_Foundation:burn/128-1776218204
Timmy_Foundation:burn/12-1776218263
Timmy_Foundation:burn/4-1776218034
Timmy_Foundation:burn/8-1776218268
Timmy_Foundation:burn/16-1776218249
Timmy_Foundation:docs/dismantle-sequence-status
Timmy_Foundation:burn/122-1776218271
Timmy_Foundation:burn/130-1776218178
Timmy_Foundation:burn/7-1776218023
Timmy_Foundation:burn/122-1776218224
Timmy_Foundation:burn/130-1776217950
Timmy_Foundation:burn/6-1776218278
Timmy_Foundation:burn/8-1776218020
Timmy_Foundation:burn/128-1776218251
Timmy_Foundation:burn/14-1776218006
Timmy_Foundation:burn/130-1776218089
Timmy_Foundation:burn/16-1776218000
Timmy_Foundation:fix/issue-130-6
Timmy_Foundation:fix/137-cooldown-persist
Timmy_Foundation:fix/133-dissolve-truncate
Timmy_Foundation:fix/132-reckoning-suppress
Timmy_Foundation:fix/128-reckoning-ui
Timmy_Foundation:dispatch/16-1776180746
Timmy_Foundation:sprint/issue-138
Timmy_Foundation:dispatch/17-1776180746
Timmy_Foundation:am/16-1776166469
Timmy_Foundation:am/17-1776166469
Timmy_Foundation:dawn/17-1776130053
Timmy_Foundation:triage/17-1776129677
Timmy_Foundation:q/17-1776129480
Timmy_Foundation:queue/17-1776129201
Timmy_Foundation:whip/4-1776132287
Timmy_Foundation:dawn/16-1776130053
Timmy_Foundation:triage/16-1776129677
Timmy_Foundation:q/16-1776129480
Timmy_Foundation:queue/16-1776129201
Timmy_Foundation:whip/16-1776128804
Timmy_Foundation:whip/17-1776128804
Timmy_Foundation:burn/fibonacci-trust-7
Timmy_Foundation:burn/dismantle-16
Timmy_Foundation:ci/retrigger-smoke
Timmy_Foundation:fix/resource-counter-animations
Timmy_Foundation:fix/ci-a11y-workflow
Timmy_Foundation:sprint/issue-101
Timmy_Foundation:burn/20260413-0400-fix-ui-bugs
Timmy_Foundation:fix/phase-transition-overlay
Timmy_Foundation:burn/20260413-0348-a11y-workflow-fix
Timmy_Foundation:fix/issue-100-ci-workflows
Timmy_Foundation:burn/20260413-0339-beacon-ui-fixes
Timmy_Foundation:fix/a11y-workflow-game-js-removal
Timmy_Foundation:feat/canvas-combat-visualization
Timmy_Foundation:beacon/polish
Timmy_Foundation:burn/20260413-0220-qa-fixes
Timmy_Foundation:burn/20260413-0202-qa-bug-sweep
Timmy_Foundation:burn/20260412-1220-polish-2
Timmy_Foundation:burn/fix-bilbo-randomness
Timmy_Foundation:sprint/issue-95
Timmy_Foundation:burn/fix-bilbo-drone-screenreader
Timmy_Foundation:sprint/issue-tutorial-fix
Timmy_Foundation:burn/fix-critical-bugs
Timmy_Foundation:qa/playtest-report
Timmy_Foundation:perplexity/dead-code-audit
Timmy_Foundation:burn/20260412-1227-sound
Timmy_Foundation:feat/symbolic-guardrails-1776010892175
Timmy_Foundation:feat/golden-ratio-drones
Timmy_Foundation:feat/gofai-npc-logic
Timmy_Foundation:burn/20260412-1150-a11y-fix
Timmy_Foundation:feat/beacon-mega-1775996281802
Timmy_Foundation:burn/a11y-aria-labels
Timmy_Foundation:burn/20260412-0757-polish
Timmy_Foundation:burn/20260412-0720-mobile-touch-polish
Timmy_Foundation:feat/better-rate-display
Timmy_Foundation:burn/20260411-1845-export-import-keyboard-help
Timmy_Foundation:polish
Timmy_Foundation:burn/20260411-1627-export-import-shortcuts
Timmy_Foundation:burn/20260411-1507-fix-debuff-corruption
Timmy_Foundation:beacon/polish-tutorial-onboarding
Timmy_Foundation:burn/20260411-0022-accessibility-aria-labels
Timmy_Foundation:burn/20260410-2215-boosted-rates-click-power
Timmy_Foundation:feat/modular-engine-v2
Timmy_Foundation:fix/accessibility-aria
Timmy_Foundation:feat/agent-guardrails-and-smoke-test
Timmy_Foundation:rescue/export-import
Timmy_Foundation:burn/20260410-1920-49-accessibility-aria
Timmy_Foundation:refactor/unslop-phase-1-2
Timmy_Foundation:fix/add-smoke-test
Timmy_Foundation:feat/ci-a11y-checks
Timmy_Foundation:feat/a11y-smoke-test
Timmy_Foundation:burn/20260410-47-export-import-hotkeys
Timmy_Foundation:feat/progression-toasts
Timmy_Foundation:burn/20260410-0817-10-number-formatting
Timmy_Foundation:feat/offline-gains-popup
Timmy_Foundation:feature/locked-building-previews
Timmy_Foundation:feature/production-breakdown
Timmy_Foundation:fix/event-remediation-system
Timmy_Foundation:fix/creativity-double-count
Timmy_Foundation:burn/20260410-0423-25-mempalace-building
Timmy_Foundation:feat/combo-system
Timmy_Foundation:burn/20260410-0355-35-fix-offline-progress
Timmy_Foundation:feat/progress-bar-milestones
Timmy_Foundation:fix/offline-progress-all-resources
Timmy_Foundation:feature/buy-mode-toggle
Timmy_Foundation:burn/20260410-0225-fix-offline-progress
Timmy_Foundation:fix/offline-progress
Timmy_Foundation:burn/20260410-0052-13-static-site-meta
Timmy_Foundation:beacon/unlock-notifications
Timmy_Foundation:feature/save-toast
Timmy_Foundation:burn/20260409-2101-creativity-ops
Timmy_Foundation:burn/20260409-1926-18-spellf-full-number-formatting
Timmy_Foundation:feat/spellf-formatting
Timmy_Foundation:integration
Timmy_Foundation:allegro/code-review-and-enhancements
Timmy_Foundation:bezalel/fleet-story-integration
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
Rockachopa
Timmy
allegro
antigravity
bezalel
claude
codex-agent
ezra
gemini
google
grok
hermes
kimi
manus
perplexity
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Timmy_Foundation/the-beacon#186
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "fix/p2-offline-combat"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Offline Progress Fixes
Canvas Combat Fixes
cleanup()method to Combat moduleRoot Cause
requestAnimationFramepauses when tab is hidden. On refocus,performance.now()delta could be minutes/hours, causing ships to teleport across the canvas.offSec— closing the tab for days gave millions of resources at 50% efficiency.Review (LGTM — cannot formally approve own PR):
Two distinct fixes that both address the same class of problem (uncapped time deltas causing explosions). Both are correct and well-implemented.
Offline progress cap (render.js):
Math.min(offSec, 8 * 60 * 60)) is sensible — prevents returning after days to find resources at absurd levels.G.playTimeincluding offline time is a nice addition for analytics.Canvas combat tab-switch guard (combat.js):
rawDt > 300check (>5 seconds hidden) correctly detects tab-switch rather than legitimate frame drops.cleanup()export on the Combat module is clean, and calling it onvisibilitychangein main.js prevents timestamp accumulation.ReCKoning endgame projects (data.js):
One note: the
cleanupfunction on the Combat return object is inlined as a one-liner — consider extracting for readability.Looks good to merge.
Fixed and merged in PR #186. Offline progress capped at 8h, canvas combat guard against tab-switch.
Pull request closed