Skip to content

fix(store): fuse observed streams after EOF - #46

Merged
forhappy merged 1 commit into
mainfrom
codex/fuse-observed-streams-20261003
Oct 3, 2026
Merged

forhappy merged 1 commit into
mainfrom
codex/fuse-observed-streams-20261003

Conversation

@forhappy

@forhappy forhappy commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Change

Fuse observed GET, listing, and deletion streams so polling after EOF returns None. This prevents futures_util::stream::unfold panics when GetResult::bytes collects a zero-chunk body. Record exactly one terminal observation and release active accounting once.

Verification

  • Both new regression tests fail with the original wrappers: Unfold must not be polled after it returned Poll::Ready(None).
  • Fixed cellule-store suite: 167 unit tests and 2 integration tests pass, including cancellation and error observation.
  • cellule-ltx replica suite passes (98 unit, 63 cell, 65 host, 14 LTX, and 1 doc test; opt-in cases retain their existing exclusions).
  • Workspace/all-target/all-feature locked check and strict Clippy pass.
  • Format, API docs with warnings denied, boundaries, module layout, Rust fences, doc links, and runtime contract validation pass.

No durability acknowledgment, authority, routing, wire format, or lockfile changes. BeyondDB pins this exact commit in PR 15. Its original follower process-kill test passes twice locally with its assertions unchanged, and the full signed SDK CI passes: native 49/49, peers 88/88, processes 8/8. Separate local coordinator-churn lease-fencing failures remain unresolved. All ten Cellule CI checks pass. Benchmark records remain local and are excluded from Git.

@forhappy
forhappy merged commit 853b982 into main Oct 3, 2026
9 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