Skip to content

fix(purchase): isolate manual cleanup failures per plan - #871

Merged
cristim merged 1 commit into
fix/631-ship-manual-attachfrom
fix/631-notification-error-isolation
Oct 14, 2026
Merged

cristim merged 1 commit into
fix/631-ship-manual-attachfrom
fix/631-notification-error-isolation

Conversation

@cristim

@cristim cristim commented Oct 14, 2026

Copy link
Copy Markdown
Member

One manual-plan cleanup transaction error currently aborts the entire notification tick, preventing later automatic plans from receiving their notices. Log that failure and skip the uncertain plan so the remaining plans continue. Global configuration and plan-list failures still stop the tick.

Follow-up to #870 and verified review finding4275415396. Refs #631. This PR targets #870's feature branch so the correction lands before the final main merge; it changes only two files,40 lines.

Validation at 60167762a1ed6cf4b78b2426b0f7426a07b0277a: retained independent source/staged two-pass reviews clean; the new regression fails on the unchanged parent and passes after correction; author full purchase race34.922s, build, pinned integration lint0 and all normal hooks passed. The regression uses simulated store failures and email delivery while exercising the actual notification loop and token-generation path. Fresh cold verification and explicit full CI workflow dispatch are required before merge.

The existing workflow branch filters do not trigger automatic checks for a feature-target PR. CI - Build & Test will be explicitly dispatched on this exact branch and watched through full success; the pre-commit workflow has no manual trigger, so Linux pre-commit is not claimed. All local normal commit hooks passed. Final #870 must independently regain every normal main-target check on its new exact head. No real purchases, cloud mutations, graph/UI changes or deployment commands.

@cristim cristim added urgency/this-sprint Within the current sprint triaged Item has been triaged priority/p1 Next up; this sprint severity/high Significant harm impact/many Affects most users effort/xl Multi-week / refactor type/feat New capability labels Oct 14, 2026
@coderabbitai

coderabbitai Bot commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Repository: LeanerCloud/cloud-commitments-platform/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: c1ee93c2-6f3b-4808-a119-3bcc732518f1

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@cristim

cristim commented Oct 14, 2026

Copy link
Copy Markdown
Member Author

Exact reviewed head: 60167762a1ed6cf4b78b2426b0f7426a07b0277a, tree 7e0b3cbec16c03bfb711b1ab77ba1a0652cf7c37, parent 5ea04b251a550c4fca127b4e2600241e933dca14.

Fresh independent verification completed two clean adversarial passes on this exact corrective diff. It independently reproduced the regression failure against parent production source, then passed the corrected full purchase race suite in35.245s, native manual/five-SP compatibility in9.795s, full build and pinned integration lint with zero issues. The uncertain failed manual plan is skipped, the later automatic plan reaches the actual notification/token/rotation/stamp path and counts one successful notice, and global configuration/list errors remain fatal.

The regression uses mocked store failure and email delivery. Native compatibility uses real local PostgreSQL/store/resolver with fixture recommendation/source boundaries and no cloud execution. Author race34.922s/build/lint0 and ALL normal commit hooks passed. Retained independent source and exact staged-tree reviews each completed two clean passes.

Owner explicitly approved publication of this exact payload/destination. Live head and target branch were verified after creation; labels match #631. The existing build/test CI was explicitly dispatched because feature-target PRs do not trigger the main/develop branch-filtered workflows automatically. Run 38641987877 has matching headSha60167762 and a live background watcher. It must finish successfully before normal merge; no Linux pre-commit workflow run is claimed. #870's final main-target head must regain all normal CI/protections after this follow-up lands.

Review follows the owner's explicit independent Sol review direction. No CodeRabbit quota wait is required under that path, but every actual new finding remains subject to verification and disposition. No real purchase, cloud mutation or manual deployment is authorized by these results.

@cristim
cristim merged commit 75ce0fc into fix/631-ship-manual-attach Oct 14, 2026
24 checks passed
@cristim

cristim commented Oct 14, 2026

Copy link
Copy Markdown
Member Author

Merged normally into #870's feature branch as 75ce0fc81a318b5f82940922d3b48e815ea979f8. The corrective full CI dispatch 38641987877 completed successfully at reviewed head60167762. There were no inline review findings on this follow-up.

The resulting tree exactly equals reviewed corrective tree 7e0b3cbec16c03bfb711b1ab77ba1a0652cf7c37; retained and fresh cold reviewers independently confirmed that identity. New #870 main-target CI 38643781552 and pre-commit 38643781251 are under individual background watches. #870 remains unmerged pending its corrected exact-head local/independent checks and full CI.

This is a feature-branch integration receipt, not a deployment or live purchase test. Source refs and verification artifacts are preserved for the remaining #631 work. No separate follow-up issue was filed: the umbrella #631 and #870 explicitly retain the unfinished main merge and remaining feature work.

cristim added a commit that referenced this pull request Oct 14, 2026
* fix(purchase): attach recommendations to explicit manual plan steps

Allow enabled manual plans to attach and notify explicit scheduled roots
while automatic purchasing is disabled. Preserve automatic mode guards
and optional manual commitment caps.

Fail due empty manual roots without requiring an email recipient or
overdue grace eligibility, pinning the empty recommendation snapshot so
concurrent attachment cannot be overwritten.

Refs #631

* fix(ci): bound integration package runtime at twenty minutes

* fix(purchase): isolate manual cleanup failures per plan (#871)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

effort/xl Multi-week / refactor impact/many Affects most users priority/p1 Next up; this sprint severity/high Significant harm triaged Item has been triaged type/feat New capability urgency/this-sprint Within the current sprint

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant