Skip to content

Say how a host's lifecycle composes with USSI's own, and cover the tail - #81

Merged
drametwally merged 3 commits into
mainfrom
coverage-tail
Sep 22, 2026
Merged

drametwally merged 3 commits into
mainfrom
coverage-tail

Conversation

@drametwally

@drametwally drametwally commented Sep 22, 2026 •

Copy link
Copy Markdown
Collaborator

INTEGRATION.md gains a section on the two lifecycles. USSI runs one inside a
namespace that nothing suspends, drives, or waits for from outside, and a host
runs one over whole namespaces. They compose because they do not meet.

Each claim in it was checked against the code before it was written, and the one
that turned out to matter most was missing entirely: a rowNum is allocated per
namespace counting from zero, so two namespaces allocate the same values for
different rows. A host keying its own mapping by rowNum alone would conflate
them. There is a test asserting the collision.

The section also records that closing a namespace releases the indexes it built
and not what it shares with the process, that the shared structures bound
concurrency once for the process rather than once per namespace, and that
nothing can wait for a graduation to finish.

Branch coverage 92.8% to 93.4%, with the remaining reachable branches down from
100 to 88. Covers the namespace lifecycle, the budget sampling window, the
comparator and sequence distance a configuration names, and the inverted cache
searches nothing reached. Defensive checks are left uncovered by design.

Adds closing a namespace again, the estimate before any row has graduated, a
delete that visits past the structure it asks first, and the window of readings
that re-derives from the concurrency while the allowance stands still.
USSI runs a lifecycle inside a namespace that nothing suspends, drives, or waits
for from outside, and a host runs one over whole namespaces. Records what that
costs a host to know, including that a rowNum names a row only within the
namespace that returned it, which the mapping a host keeps must account for.

Adds the test that two namespaces allocate the same rowNums, and covers the
cache searches and comparator factory paths nothing reached.
The opening named the cache, the graduation, and the consolidation before the
terms table defined them, and the table defined neither an index nor the search
pool while the rest of the document named both.

The opening now sets what the document covers and points at the section, the
table defines an index, the search pool, and the processor allowance, and the
tombstone is named where its mechanism is, against DESIGN.md.
@drametwally
drametwally merged commit c504e97 into main Sep 22, 2026
3 checks passed
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