fix(noodle): daily-slot budget bugs + design cleanup (1.0.9) - #317
Conversation
… budget into the schedule (1.0.9) Failed text/image generation attempts permanently consumed a slot in the rolling 24h automatic-posting budget, even though nothing published. Image generation fails more often than text, so this silently locked out image posting for creators while text kept working. Failed attempts no longer count against the budget. The image generation budget was also a second, mostly-redundant limiter: the publish schedule already bounds output to postsPerDay posts a day, so gating images with their own separate counter just created a pool that could drain on its own (e.g. from failures) while the real limiter kept working fine. Images no longer book a separate daily quota; they ride the post they belong to. Settings now show one "Automatic posts today" counter instead of two easily-misread "provider claims" tiles. Also gives "Refresh NoodleR now" a completion popup naming which creators got a new post, instead of a bare toast.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (4)
📒 Files selected for processing (10)
📝 WalkthroughWalkthroughNoodle was updated to version 1.0.9. Noodler quota accounting now excludes failed attempts and separate image quotas. The client shows refresh results and revised publishing counters. ChangesNoodler quota accounting and client behavior
Estimated code review effort: 3 (Moderate) | ~20 minutes Mergeability Score: ⚪ Minimal · up to The PR stops failed generation attempts from consuming daily posting capacity, uses the daily post schedule as the sole limiter, and adds completion feedback for manual refreshes. The supplied checks and deployment verification pass, and no actionable merge-blocking risk remains. Possibly related issues
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 2📝 Generate docstrings 💡
🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Pull request
Important
Contributions target
staging. OnlySpicyMarinaramay promote this repository'sstagingbranch tomain.Outside and first-time contributors also require an approving review from
SpicyMarinara.Linked issue
Closes #318
Why this change
Noodler's automatic-posting budget silently locked out image posting while text kept working. Two bugs, both in the daily "slot" system:
postsPerDayposts a day; gating images with a separate counter on top of that just created a pool that could drain on its own, and made "8 posts/day" secretly mean two independent pools of 8 — confusing for a primarily-image product.What changed
noodle.storage.ts: failed attempts no longer count against the daily budget (both the claim check and the status display).noodle-noodler-reserve.operation.ts: removed the separate image quota. Images now ride the post they belong to; the publish schedule is the sole limiter.NoodlerPublishingSettings.tsx/en.json: settings show one "Automatic posts today" counter instead of two "provider claims" tiles, and the posting-schedule copy spells out that each post may include an image.NoodlerHome.tsx: "Refresh NoodleR now" shows a completion popup naming which creators got a new post, in addition to the existing toast.Package and security impact
noodleValidation
node scripts/validate-catalog.mjspasses locallygit diff --checkpasses locallyCONTRIBUTING.mdManual verification notes
npm run test:noodle:regressions— all 12 suites passnode scripts/test-catalog-lanes.mjsandnode scripts/validate-package-locales.mjspassclient.jssha256 matches the local build,/api/healthreturns ok, and thenoodlepackage reportsstatus: active,readiness: readywith no error after container restart.Documentation impact
UI evidence (if applicable)
N/A — settings-panel copy/counter change and a completion popup; verified by hand on the dev Engine, no visual diff captured.