promote due or overdue Tomorrow plans with a stable per-plan retry identity
reject early promotion in the saved IANA timezone without mutating Today
check promotion at startup, reconnect, foreground, and the next local midnight with one single-flight scheduler
TDD evidence
RED: overdue frontend plan returned false; early server promotion did not raise; API returned 422; lifecycle method was absent
focused: 10 passed in 2.30s
full: 2190 passed, 9 skipped in 166.62s
git diff --check clean
Closes #1154
## What changed
- promote due or overdue Tomorrow plans with a stable per-plan retry identity
- reject early promotion in the saved IANA timezone without mutating Today
- check promotion at startup, reconnect, foreground, and the next local midnight with one single-flight scheduler
## TDD evidence
- RED: overdue frontend plan returned `false`; early server promotion did not raise; API returned 422; lifecycle method was absent
- focused: `10 passed in 2.30s`
- full: `2190 passed, 9 skipped in 166.62s`
- `git diff --check` clean
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.
Closes #1154
What changed
TDD evidence
false; early server promotion did not raise; API returned 422; lifecycle method was absent10 passed in 2.30s2190 passed, 9 skipped in 166.62sgit diff --checkclean