Say max_retries is the total attempt count, not a retry count (closes #316)
check / check (push) Failing after 1s
check / check (push) Failing after 1s
The delivery core makes max_retries attempts in total: a fresh delivery starts at attempt one and gives up once the attempt number reaches max_retries, so 3 is three attempts, not four, and 0 is special-cased to a single fire-and-forget attempt with no retries and no circuit breaker. The create and edit target forms called it "Max retries" with no total, and the README data-model row called it "maximum retry attempts", so an operator wanting "try, then retry twice" would enter the wrong number. Both forms and the README rows now state the number is the total number of delivery attempts, with the 0 case spelled out. The delivery arithmetic is unchanged. A UI copy test renders both forms and pins the shared wording so it cannot drift back to a retry count. Model: opus-4-8
This commit is contained in:
@@ -120,9 +120,12 @@
|
||||
<label class="text-sm text-gray-700">Timeout (seconds, blank = default):</label>
|
||||
<input type="number" name="timeout" min="0" max="300" :disabled="targetType !== 'http'" class="input text-sm w-24">
|
||||
</div>
|
||||
<div x-show="targetType === 'http'" class="flex gap-2 items-center">
|
||||
<label class="text-sm text-gray-700">Max retries (0 = fire-and-forget):</label>
|
||||
<input type="number" name="max_retries" value="0" min="0" max="20" class="input text-sm w-24">
|
||||
<div x-show="targetType === 'http'">
|
||||
<div class="flex gap-2 items-center">
|
||||
<label class="text-sm text-gray-700">Max retries:</label>
|
||||
<input type="number" name="max_retries" value="0" min="0" max="20" class="input text-sm w-24">
|
||||
</div>
|
||||
<p class="text-xs text-gray-500 mt-1">This is the total number of delivery attempts, not retries on top of the first: a value of 3 makes three attempts in all. 0 means a single attempt with no retries and no circuit breaker.</p>
|
||||
</div>
|
||||
<div x-show="targetType === 'slack'">
|
||||
<input type="url" name="url" placeholder="https://hooks.slack.com/services/..." :disabled="targetType !== 'slack'" class="input text-sm">
|
||||
|
||||
Reference in New Issue
Block a user