slots: refuse rather than warn #131

Merged
PerishFire merged 1 commit from land/task/santi-slot-refusal into main 2026-08-07 13:59:42 +00:00
Owner

slots: refuse rather than warn

Pressure delivered as information did not carry this. A reminder that
reached the soul inside the turn, naming the share consumed and the bytes
still free and growing more urgent as it went, produced one late
compaction after two earlier bands passed unanswered. An action that
arrives late and unreliably cannot be what a runtime depends on, for the
same reason nothing depends on anyone remembering to free memory.

So the limits refuse. A compaction whose summary exceeds a slot is not a
compaction but a copy, and says so. A compaction that would open a slot
beyond the ceiling is refused unless it absorbs, which leaves exactly one
legal move and leaves the choice of what survives where it belongs. And
while either ceiling is exceeded, ordinary calls are refused outright:
the soul stays inside its turn, holding an error that names the only way
forward, rather than being thrown out of the context in which it could
act.

Occupancy is read through the same function the audit reports, so a
stated occupancy and an enforced one cannot disagree.

Two things this leaves. Every refusal wording had to be classified before
it could reach its caller, because an unclassified message still defaults
to an internal fault that the caller may not read; that default remains
the reason such defects appear. And a strand can now sit in violation
without noticing until it acts, which is intended: the block is a
condition of working, not an alarm.

Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com

slots: refuse rather than warn Pressure delivered as information did not carry this. A reminder that reached the soul inside the turn, naming the share consumed and the bytes still free and growing more urgent as it went, produced one late compaction after two earlier bands passed unanswered. An action that arrives late and unreliably cannot be what a runtime depends on, for the same reason nothing depends on anyone remembering to free memory. So the limits refuse. A compaction whose summary exceeds a slot is not a compaction but a copy, and says so. A compaction that would open a slot beyond the ceiling is refused unless it absorbs, which leaves exactly one legal move and leaves the choice of what survives where it belongs. And while either ceiling is exceeded, ordinary calls are refused outright: the soul stays inside its turn, holding an error that names the only way forward, rather than being thrown out of the context in which it could act. Occupancy is read through the same function the audit reports, so a stated occupancy and an enforced one cannot disagree. Two things this leaves. Every refusal wording had to be classified before it could reach its caller, because an unclassified message still defaults to an internal fault that the caller may not read; that default remains the reason such defects appear. And a strand can now sit in violation without noticing until it acts, which is intended: the block is a condition of working, not an alarm. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
slots: refuse rather than warn
All checks were successful
guard / guard-macos (pull_request) Successful in 50s
guard / guard (pull_request) Successful in 5m55s
guard / guard-macos (push) Successful in 47s
guard / guard (push) Successful in 5m34s
e2ccb32ba6
slots: refuse rather than warn

Pressure delivered as information did not carry this. A reminder that
reached the soul inside the turn, naming the share consumed and the bytes
still free and growing more urgent as it went, produced one late
compaction after two earlier bands passed unanswered. An action that
arrives late and unreliably cannot be what a runtime depends on, for the
same reason nothing depends on anyone remembering to free memory.

So the limits refuse. A compaction whose summary exceeds a slot is not a
compaction but a copy, and says so. A compaction that would open a slot
beyond the ceiling is refused unless it absorbs, which leaves exactly one
legal move and leaves the choice of what survives where it belongs. And
while either ceiling is exceeded, ordinary calls are refused outright:
the soul stays inside its turn, holding an error that names the only way
forward, rather than being thrown out of the context in which it could
act.

Occupancy is read through the same function the audit reports, so a
stated occupancy and an enforced one cannot disagree.

Two things this leaves. Every refusal wording had to be classified before
it could reach its caller, because an unclassified message still defaults
to an internal fault that the caller may not read; that default remains
the reason such defects appear. And a strand can now sit in violation
without noticing until it acts, which is intended: the block is a
condition of working, not an alarm.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

Land-Source: task/santi-slot-refusal@54b839aa4d
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
PerishFire/santi!131
No description provided.