fix(captain): prevent clamp ArgumentError when captain limits are negative (#242)

When creating an inbox, `usage_limits` eagerly computes captain limits
even though only the `:inboxes` value is needed. If `total_count` in
`get_captain_limits` resolves to a negative number, `clamp(0, negative)`
raises `ArgumentError: min argument must be less than or equal to max
argument`, causing a 500 on inbox creation.

Ensure `total_count` is floored at 0 so the clamp range is always valid.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Gabriel Jablonski 2026-03-19 20:51:04 -03:00 committed by GitHub
parent 521ce90e79
commit 05e0d355dd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -62,7 +62,7 @@ module Enterprise::Account::PlanUsageAndLimits # rubocop:disable Metrics/ModuleL
private
def get_captain_limits(type)
total_count = captain_monthly_limit[type.to_s].to_i
total_count = [captain_monthly_limit[type.to_s].to_i, 0].max
consumed = if type == :documents
custom_attributes[CAPTAIN_DOCUMENTS_USAGE].to_i || 0