A budget of zero turns the abandonment ledger off in one layer and on in another #2

Open
opened 2026-09-21 07:18:02 +00:00 by cgalo5758 · 0 comments
Owner

What a contributor runs into

The number of abandoned claims a workspace is allowed before the ledger starts refusing new ones passes through three layers with three readings of zero. An operator setting the knob to zero means "no ledger": the setting is translated to the disabled sentinel. A policy value of zero arriving straight from a caller means "unset" and is replaced by the default of three, so a caller that passes a literal zero switches the ledger on with the default budget instead of off. The design text for the hardening round says the approval-only posture falls out of a budget of zero, which is the opposite of what shipped.

Why it costs

The safe-looking value is the one that behaves least predictably, and whether the ledger is enforcing depends on which layer the number came from. A composition root written against the documented reading gets the enforcing behaviour and no error.

Where

The domains policy type and its defaults; the knob that carries the abandon budget; the hardening design's non-goal sentence.

Done when

One reading of zero holds across the layers, a caller cannot express "unset" and "disabled" with the same value, and the prose says what the code does.

Migrated from status/issues.md at b7a0e15

## What a contributor runs into The number of abandoned claims a workspace is allowed before the ledger starts refusing new ones passes through three layers with three readings of zero. An operator setting the knob to zero means "no ledger": the setting is translated to the disabled sentinel. A policy value of zero arriving straight from a caller means "unset" and is replaced by the default of three, so a caller that passes a literal zero switches the ledger on with the default budget instead of off. The design text for the hardening round says the approval-only posture falls out of a budget of zero, which is the opposite of what shipped. ## Why it costs The safe-looking value is the one that behaves least predictably, and whether the ledger is enforcing depends on which layer the number came from. A composition root written against the documented reading gets the enforcing behaviour and no error. ## Where The domains policy type and its defaults; the knob that carries the abandon budget; the hardening design's non-goal sentence. ## Done when One reading of zero holds across the layers, a caller cannot express "unset" and "disabled" with the same value, and the prose says what the code does. Migrated from status/issues.md at b7a0e15
cgalo5758 added the
kind
debt
area/domainsarea/ops
labels 2026-09-21 07:18:02 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wiki-cafe/member-console#2