Design 47, Two graphs: a keep that would pass the store's cap refuses the next revision and says full, naming the source revision held pending with the reason objects full (Pending.Held, which indexer_pending shows); a keep crossing 80 % says filling; once something removes revisions, RoomAgain says room below the filling mark and evaluates pending again (no timer). Each event is said once by its duplicate id. Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ