Repository navigation
Carry main fixes into redesign main (#746) - #704
Merged
thomasluizon merged 1 commit intoOct 5, 2026
Merged
Conversation
) * fix: default recurring bulk habit quantities to one * fix: preserve bulk approval on rolled back operations * fix: carry policy decisions through operation failures * fix: preserve transaction exception types during agent execution (cherry picked from commit 649c9db)
|
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes Reviewed the complete carry onto redesign/main, including conflict resolutions and regression coverage.
- Recurring defaults: Bulk creation now defaults omitted recurring quantities to one for parents and children while preserving explicit values and one-time task behavior.
- Atomic approval and writes: Transactional bulk execution rolls back approval consumption and writes on failed outcomes, preserving successful retry and original exception propagation.
- Redesign compatibility: Clarification checks, chat approval holds, editable previews, and execution-start notifications remain in place; failure logging is redacted and retry audits use the current policy evaluation.
- Verification: The solution build completed with zero errors, and all 9,414 unit tests passed with no failures or skips. No DTO, endpoint, or persistence contract changes were introduced.
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 main commit
649c9dbe6b873d77ba071134b725a36e81a0a3b0from orbit-api#702, for thomasluizon/orbit-tickets#1215, ontoredesign/mainwithgit cherry-pick -x. The carry is75081cbc0549624e1a4e0a5adf0ff0546119e6e4and retains the source SHA trailer. Confirmed bulk creation defaults omitted recurring quantities to one and rolls back approval consumption with failed writes, allowing retry.Conflict resolutions
src/Orbit.Application/Chat/Tools/IAiTool.csIClarificationPrecheckToolandIArgumentCheckTool, and add main'sITransactionalAiTool. Keep the existing concurrency retry interface.src/Orbit.Application/Chat/Tools/Implementations/BulkCreateHabitsTool.csIAiTool, IArgumentCheckTool, ITransactionalAiTool. Retain check-only validation, preview item handling, and empty-title preview parsing; apply main's recurring quantity default to parents and children. Explicit quantities and one-time tasks retain their existing semantics.src/Orbit.Infrastructure/Services/AgentOperationExecutor.csThe redesign's per-operation reversibility from orbit-api#701 and invalid-batch approval validation from orbit-api#703 remain intact, including confirm/execute HTTP 400 responses. Their production code and tests are unchanged and passed in the full suite.
The other five carried paths are
RedactedOperationException.cs,ToolOutcomeRollbackException.cs,BulkCreateHabitsToolTests.cs,AgentExecutionAndSanitizerTests.cs, andBulkCreateAgentOperationTests.cs. Both sides' tests are retained. The only adjustment to a carried test is oneIPendingOperationChangePreviewersubstitute passed to the executor constructor inBulkCreateAgentOperationTests.cs, because redesign adds that dependency.No commit was skipped. No DTO, endpoint or persistence model changes are included. The build's OpenAPI generator ran and left
src/Orbit.Api/openapi.jsonunchanged; no manual contract merge was needed. No migrations or snapshot files changed and there is no migration ordering question.Validation
All four commands ran from the repository root; exit codes were read directly. Logs are outside the worktree under
/private/tmp/ticket-746-*.log.env -u LANG dotnet build Orbit.slnxenv -u LANG dotnet testenv LC_ALL=en_US.UTF-8 dotnet build Orbit.slnxenv LC_ALL=en_US.UTF-8 dotnet testenv -u LANG dotnet ef migrations has-pending-model-changes --project ../Orbit.Infrastructure --startup-project . --no-build, run fromsrc/Orbit.Api, exited 0 and reported no changes since the last migration. Pre-commit formatting, dash, timeless text, root allowlist and suppression checks passed. The changed C# files contain no bare narration comments.Test evidence
env -u LANG dotnet test --filter 'FullyQualifiedName~BulkCreateHabitsToolTests|FullyQualifiedName~AgentExecutionAndSanitizerTests'exited 0 with 34 passed. They did not catch the carried regressions.env -u LANG dotnet test --filter 'FullyQualifiedName~BulkCreateHabitsToolTests|FullyQualifiedName~AgentExecutionAndSanitizerTests|FullyQualifiedName~BulkCreateAgentOperationTests'exited 1 with 14 failed and 39 passed.FrequencyQuantity_DefaultsOnlyForRecurringItemsandRecurringSubHabitWithoutQuantity_DefaultsToOneobserved missing defaults;ConfirmedDailyItemsWithoutQuantity_CreateEveryItemWithQuantityOneobserved failed creation;ValidationFailure_LeavesPendingOperationApprovable,PayGateFailure_LeavesPendingOperationApprovableandFailureAfterWrite_RollsBackHabitsAndConfirmationBeforeRetryobserved consumed approval after failure. Exception-identity and policy-state regression cases also failed. The resolved implementations were restored immediately after the run.env -u LANG dotnet test --filter 'FullyQualifiedName~BulkCreateHabitsToolTests|FullyQualifiedName~AgentExecutionAndSanitizerTests|FullyQualifiedName~BulkCreateAgentOperationTests|FullyQualifiedName~AgentChatWriteHoldTests|FullyQualifiedName~AgentCatalogServiceTests|FullyQualifiedName~HeldWriteArgumentCheckTests|FullyQualifiedName~PendingOperationRevisionServiceTests|FullyQualifiedName~PendingOperationItemContractTests|FullyQualifiedName~PendingOperationChangePreviewerTests'exited 0 with 208 passed. Both full locale suites then passed all carried regressions and redesign tests.Refs thomasluizon/orbit-tickets#746
Refs thomasluizon/orbit-tickets#1215