fix(steps): address CodeRabbit review on typed outputs & parameters - #257
Conversation
- Pin batch-step output picture storage to the private 'local' disk (put, exists, path), so a public FILESYSTEM_DISK default can't web-expose it. - Make output overwrite atomic: soft-delete + insert now run in one DB transaction with the live rows locked, so a failed insert can't drop the value and two concurrent posts can't collide on the partial-unique index. - Require an explicit value for boolean outputs — a missing value no longer silently records false and satisfies the required-output completion gate. - Reject positional (list) 'parameters' arrays in the step Form Requests; equipment parameters must be a key:value map, not a list. - Keep the string '0' as a valid select option (explicit non-blank filter). Adds tests: positional-parameters 422, boolean-requires-value, select-'0'.
|
Warning Review limit reached
Next review available in: 25 minutes Limit details: You’ve used all 2 included reviews currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (10)
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 |
Fixes the actionable findings CodeRabbit raised on the v0.21.0 release PR (#256), on the just-merged Feature A/B code. All hardening of unreleased features — no user-facing behaviour change beyond correctness.
DB::transactionwithlockForUpdate()on the live rowspublicdefault → web-exposed)localdiskfalsewhenvaluewas omitted, satisfying the required gatevaluenow `required["250","40"]passed thearrayrule and froze with integer keysValidatesEquipmentParametersrule rejects lists (key:value map only)array_filterdropped the string"0"as a select optionTests added: positional-parameters → 422, boolean-requires-value, select-
"0"accepted.Full backend suite: 2489 passed · Pint clean.