Carry main fixes into redesign main (#746) - #688
Merged
thomasluizon merged 2 commits intoOct 2, 2026
Merged
Conversation
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes Reviewed both fixes carried into redesign/main, including the check-in conflict resolution and all six changed files.
- Calendar targets: Flexible projected dates now respect each window's remaining target at root and descendant levels, while preserving positive logged dates and next-window eligibility.
- Check-in bodies: Standalone sentence instructions and localized capitalization apply to both response formats without replacing the redesign's prompt, voice rules, or count-aware fallbacks.
- Regression coverage: Verified exact calendar-date assertions and persisted notification/push body assertions. Targeted suites passed all 29 calendar tests and 50 check-in tests; the initial calendar invocation exited with
Segmentation fault (core dumped), then passed on standalone retry. The full suite was not rerun during this review.
gpt-6.1-sol | 𝕏
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Carries the missing calendar and proactive check-in fixes from
mainintoredesign/main, preserving the redesign behavior. Refs thomasluizon/orbit-tickets#746. The standing sync ticket stays open.Carried commits
f2e5180c42700ed84d05bbd266034c0af485a2d3(fix(calendar): omit flexible dates after the window target is met #686, ticket #903): cherry-picked with-x, without conflicts.src/Orbit.Application/Habits/Queries/GetCalendarMonthQuery.csfilters flexible projected dates by the remaining window target for parents, children and descendant inclusion, while retaining positive logged dates.tests/Orbit.Application.Tests/Queries/Habits/GetCalendarMonthQueryHandlerTests.cscarries all ten added cases, including nested habits, skipped targets and the next window.6c4e92dcdba347859acc08b9583c9a30b87540f1(fix: capitalize standalone proactive check-in bodies #687, ticket #1102): cherry-picked with-x. Adds standalone body instructions and language-aware capitalization to the redesign service. Carries the generation, prompt and scheduler tests intests/Orbit.Infrastructure.Tests/Services/AiProactiveCheckinMessageServiceGenerationTests.cs,AiProactiveCheckinMessageServiceTests.csandProactiveCheckinSchedulerServiceTests.cs.Conflict resolution by redesign commit
23396af4(#532), notification copy redesignsrc/Orbit.Infrastructure/Services/AiProactiveCheckinMessageService.cs: read both versions and retainedSystemPrompt,BuildPrompt,NotificationVoice.Rules, the one-open-habit instruction, count-aware fallback bodies andFallbackTitle. Added main's standalone body instructions alongside the redesign format rules and itsNormalizeBodymethod before the existing fallback helpers. Applied normalization to both branches of the redesign's two-line/single-line result expression.Skipped commit evidence
41d806406952fa3db10fa9eeaf5b1f58232816cc(#678) is already carried by content on the base branch:infra/workers/staging-pinger.mjs:29sendsredirect: "manual".infra/staging-pinger.test.mjs:82asserts manual mode; line 106 covers redirect responses failing the invocation.infra/README.md:58documents manual redirect behavior.git show 41d80640 --format= --binary | git apply --reverse --checkexited 0 before any carry and again after both carries.Test evidence
Calendar command:
env -u LANG dotnet test tests/Orbit.Application.Tests --filter FullyQualifiedName~GetCalendarMonthQueryHandlerTests.Handle_FlexibleTargetMet_ReturnsOnlyLoggedDatesInWindowreturned extra dates at all three depths for week/month targets;Handle_FlexibleTargetMetWithSkip_OnlyProjectsNextWindowreturned exhausted-window dates for both week starts. The short-of-target cases passed.Check-in command:
env -u LANG dotnet test tests/Orbit.Infrastructure.Tests --filter 'FullyQualifiedName~AiProactiveCheckinMessageService|FullyQualifiedName~ProactiveCheckinSchedulerServiceTests'.GenerateMessageAsync_SingleLowercaseLine_ReturnsSentenceCaseBodycases and threeCheckAndSendCheckins_LowercaseModelBody_RecordsAndPushesSentenceCasecases observed lowercase bodies, including persisted notification and push delivery. Both strengthenedGenerateMessageAsync_RequestsSentenceCaseTitleAndStandaloneBodycases failed on the missing body instructions.Verification
env -u LANG dotnet build Orbit.slnx: exit 0, zero errors.env -u LANG dotnet test: exit 0, 8,579 passed, zero failed or skipped.env LC_ALL=en_US.UTF-8 dotnet build Orbit.slnx: exit 0, zero errors.env LC_ALL=en_US.UTF-8 dotnet test: exit 0, 8,579 passed, zero failed or skipped.dotnet ef migrations has-pending-model-changes --project src/Orbit.Infrastructure --startup-project src/Orbit.Api --no-build: exit 0, no model changes since the last migration.node --test infra/staging-pinger.test.mjs: exit 0, 15 passed.node tools/check-timeless.mjs --base origin/redesign/main, changed-file bare-comment review andgit diff --check origin/redesign/mainpassed.No contract, entity or migration changes. The API build runs the OpenAPI generator and leaves
src/Orbit.Api/openapi.jsonunchanged. No migration ordering question applies. No new external response fields or fixture response shapes were introduced.