Skip to content

Warning cleanup batch 7: application, small owners, DST harness, shard transaction, critical owners, fleet/session/tenant, HTTP/shard/billing, SSE and product/registry chunks; remove 481 inherited warnings - #141

Merged
sorenbs merged 43 commits into
slatefrom
codex/warnings-batch-7
Sep 12, 2026

Conversation

@sorenbs

@sorenbs sorenbs commented Sep 11, 2026

Copy link
Copy Markdown
Member

Warning cleanup batch 7: the merge of nine validated chunk branches into one PR so their CI runs against a single slate head (each chunk edits the owner registry, the mutation owners and both diagnostic ledgers, so any one merging turns the others CONFLICTING).

Members, each green on its own branch:

Merge resolution was mechanical: ledger intersection, owner-registry union, mutation-owner union, and the linux ledger mirrored from the macOS prunes. One post-merge adjustment: the relocated product_usage crossed the architecture gate's 200-line function budget, so its four identical service-unavailable answers are one helper.

Local mutation experiments on the executable changes: shard transaction (the stage arms stay separate so the harness never blanks the whole stage), critical owners (http_read now also runs the DST raw and history read scenarios), big-owners-1 (sse_session now also runs the DST SSE delivery and livefeed swap scenarios), big-owners-4 (span rule and retention entry). Full scripts/quality.sh on the merged head: see the CI run.

After this batch the slate ledger holds 23 inherited occurrences (down from 3,524); the final remainder chunk that retires them follows.

🤖 Generated with Claude Code

sorenbs and others added 30 commits September 11, 2026 20:44
…ing contracts; flatten the delete cascade

The tombstone repair and the billing closes leave delete_lifecycle as
their own functions, the retained-name refusal joins the winner
decision, identical seal-claim arms are combined, and the dead-letter
refusal is one match on the append outcome. Everything that stays as
it is carries its contract as a narrow expectation. Both ledgers are
pruned of the 59 occurrences this removes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…hain walk and the batch overflow verdict

The fork-chain walk breaks with let-else, the runtime constructor
consumes its entropy, the cursor widths convert with try_from, the
hot-key merge keeps the minimum with min, the failpoint registry has a
named type, and every stale or bare allowance is gone or reasoned. The
remaining line, argument, nesting, lock-poison, cast and effect
contracts are narrow expectations; the shutdown driver, the touch
flusher and main are registered effect owners. Both ledgers are pruned
of the occurrences this removes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…g contracts; combine the unknown-outcome arms

The trace store consumes its operation inputs, the fault store's FNV
prime is grouped at byte boundaries, latencies sort with total_cmp, the
compactor options are one literal, and the bare allowances carry their
reasons. The remaining fixture, argument, nesting and cast contracts
are narrow expectations; the deliberate stream leak is a registered
effect owner. Both ledgers are pruned of the occurrences this removes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…s' into codex/warnings-batch-7

# Conflicts:
#	docs/quality/diagnostic-allowances.json
…nto codex/warnings-batch-7

# Conflicts:
#	docs/quality/diagnostic-allowances.json
#	docs/quality/source-allowances.json
#	scripts/quality/mutations.sh
… codex/warnings-batch-7

# Conflicts:
#	docs/quality/diagnostic-allowances.json
#	docs/quality/owners.json
#	docs/quality/source-allowances.json
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…stage arms and borrow the rejection error

The six stage arms that only extract the hash are one or-pattern and
DurableEffects::reject borrows the error it broadcasts. The remaining
oneshot-reply, lock-poison, precondition, nesting, argument, line and
cast contracts of the transaction owners and the shard tests are
narrow expectations; the history opener, two fixtures and the drain
trace are registered effect owners, and every touched shard file is a
registered mutation owner. Both ledgers are pruned of the 109
occurrences this removes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…E owners' remaining contracts; make the page budget saturate

The page budget saturates, the SSE subscribe and the raw read render
borrow what they only read, decrypt_append and run are crate-visible,
and the shard directory's conditional allowances carry their reasons.
The remaining nesting, argument, lock-poison, precondition, cast and
effect contracts are narrow expectations; the SlateDB handoff, the
DST-released SSE poll and two fixtures are registered effect owners,
and every touched critical file is a registered mutation owner. Both
ledgers are pruned of the 92 occurrences this removes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…he fleet loop's, the session's and the postings cache's remaining contracts

With the inline tests out, the oversized owners end below their
merge-base size. The session's identical drive-outcome arms are one,
its lane key and task state move instead of being cloned, the tenant
component width converts with try_from, and the entry points are
crate-visible. The remaining line, nesting, cast, lock-poison, wait
and spawn contracts are narrow expectations; the session driver is a
registered effect owner. Both ledgers are pruned of the 88
occurrences this removes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…duplicate the committer's rejection; state the three largest owners' remaining contracts

The HTTP fixture adapters and unit tests, the shard engine's test
codec helpers and dirty-scan fault injection, and the injectable
billing clock live beside their owners under their old names. The
committer's fenced-queue rejection is the transaction's reject_op,
the producer-row and consumer-fence types have names, the stale
argument allowance on raise_nofile is gone, and the entry points are
crate-visible. The remaining line, argument, nesting, cast,
lock-poison, builder and spawn contracts are narrow expectations, one
attribute per function; the per-connection JoinSet task and the debug
abort are registered effect owners. All three files end at or below
their merge-base size and both ledgers are pruned of the 72
occurrences this removes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… their owners; state the source's and the feed's remaining contracts

The linearization rule, the ownership check and the fatal cutoff live
in source/spans.rs, the retention entry's admission mirror in
feed/retention.rs and the budget's test knobs in feed/test_support.rs.
The sealed span's cached reader has a named type and the span identity
allowance carries its reason. Each source's and the feed's lock-poison
contract is one attribute on the impl that owns the lock; the
remaining line, argument, nesting, wait, cast, wildcard-arm and
precondition contracts sit on their functions, and the transition
retry task is a registered effect owner. Both files end below their
merge-base size and both ledgers are pruned of the 71 occurrences
this removes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…their owners; state the product surface's and the registry's remaining contracts

The customer usage API lives in product/usage.rs and takes the stream
reference the ingress resolved, and the catalog page lives in
registry/catalog.rs; both keep their previous names. The entry points,
the persisted descriptor and the mutation decision are crate-visible.
The remaining argument, line, nesting, bool-parameter, tri-state
option, enum-size and cast contracts are narrow expectations, one
attribute per function. Both files end well below their merge-base
size and both ledgers are pruned of the 49 occurrences this removes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The read adapter's unit tests never render a response end to end, so
a blank read_inner or render_raw_read survived them; the DST raw and
history read scenarios observe the rendered page.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…le stage

A blank stage hangs every waiting reply instead of failing a test, so
the mutation harness cannot bound that mutant; the six arms stay as
they were under an expectation that says so.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…' into codex/warnings-batch-7

# Conflicts:
#	docs/quality/diagnostic-allowances-linux.json
#	docs/quality/diagnostic-allowances.json
#	docs/quality/owners.json
#	scripts/quality/mutations.sh
…' into codex/warnings-batch-7

# Conflicts:
#	docs/quality/diagnostic-allowances-linux.json
#	docs/quality/diagnostic-allowances.json
#	docs/quality/owners.json
#	scripts/quality/mutations.sh
…o codex/warnings-batch-7

# Conflicts:
#	docs/quality/diagnostic-allowances-linux.json
#	docs/quality/diagnostic-allowances.json
#	docs/quality/owners.json
#	scripts/quality/mutations.sh
…o codex/warnings-batch-7

# Conflicts:
#	docs/quality/diagnostic-allowances-linux.json
#	docs/quality/diagnostic-allowances.json
#	docs/quality/owners.json
#	scripts/quality/mutations.sh
#	src/shard/transaction/mod.rs
…o codex/warnings-batch-7

# Conflicts:
#	docs/quality/diagnostic-allowances-linux.json
#	docs/quality/diagnostic-allowances.json
#	docs/quality/owners.json
#	docs/quality/source-allowances.json
#	scripts/quality/mutations.sh
…o codex/warnings-batch-7

# Conflicts:
#	docs/quality/diagnostic-allowances-linux.json
#	docs/quality/diagnostic-allowances.json
#	docs/quality/owners.json
The relocated product_usage carried its expectations past the
architecture gate's 200-line function budget; the four identical
service-unavailable answers are one helper now.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The session's unit tests never drive serve end to end, so a blank
serve survived them; the DST SSE delivery and livefeed swap scenarios
observe the served stream.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Borrowing it edited the fenced call sites inside the committer loop
and the engine close, whose blank-body mutants no bounded test can
observe; the value stays and the contract says why.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…o codex/warnings-batch-7

# Conflicts:
#	scripts/quality/mutations.sh
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The cast sits in the macOS-only task_info block, so the expectation
was unfulfilled on linux and failed the CI build.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Borrowing it edited the render body and its caller, whose branch
mutants no read scenario bounds; the value stays and the contract
says why.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
sorenbs and others added 13 commits September 12, 2026 00:05
Renaming the call sites edited the bodies of scan_dirty_streams and
scan_dirty_streams_page, whose blank-body mutants no shard test
observes; the helper is imported instead and the call sites stay.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…cenarios for the source owners

The mutation experiment found the moved span rule's arithmetic, its
redundant last-span guard, the fatal cutoff's Display and the
ownership check unobserved by the sse unit tests. The rule is pinned
on a three-span lineage, the guard whose result equalled the fallback
is gone, the cutoff names its reason, and the source owners also run
the DST livefeed ownership and swap scenarios.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The mutation experiment found PageBudget::full unobserved once its
arithmetic saturated: the byte, record and metadata caps are each
pinned by a unit test now.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ant last-span flag

The moved ownership check's blank mutant hangs the ownership
scenarios instead of failing them, so it stays in source.rs out of
the diff and the source owners run the sse unit tests again. With the
second guard gone the last-span flag in the first guard is
unobservable too: continuing past the last span reaches the fallback
with the same position, so the flag and its arithmetic are gone.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The assertion raced the committer's publication on a fast runner: the
WAL PUT engages a moment before applied.closed is published. The test
now waits, bounded, for the same fact.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The metadata allowance test spent the allowance in eighths, so a page
sitting exactly one bare record short of the cap was never observed and
the '>' in PageBudget::full could become '>=' unnoticed. Four keys now
leave exactly that room; the page must still be open and admit the bare
record before it closes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Moving ProjectRetention's mirror into retention.rs made its three
methods executable mutants, and no sse:: test observed the mirrored
bytes on the bound admission entry. The feed tests now bind an
admission entry to a fresh retention entry and check that nothing
mirrors before the bind, that every add and sub after it lands
exactly, and that a second bind never redirects the mirror.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant