--- model: openai/gpt-5.6-sol service: opencode timestamp: 2026-08-13T22:59:40Z git_ref: b691422b diff_cmd: git diff HEAD~1..HEAD --- The user asked to continue the piker broadcast-consumer audit after committing the cached feed ownership fix. The next isolated item was Deribit's cached price feed, which wrapped one retained `LinkedTaskChannel` in competing broadcaster roots for cache hits. > `git diff HEAD~1..HEAD -- piker/brokers/deribit/api.py` Changed `maybe_open_price_feed()` so both the first cache owner and every cache hit enter `LinkedTaskChannel.subscribe()` and receive a lexical child from the channel's single retained broadcaster root. > `git diff HEAD~1..HEAD -- tests/test_deribit_broadcast.py` Added a concurrent ownership regression using real Tractor broadcast state. It proves a miss owner and cache-hit caller receive the same quote, closing the hit child leaves the owner live, and both children clean up independently while the channel root remains registered. Verification output: ```text . [100%] 1 passed in 0.01s ``` The new test passes through a source-isolated Deribit import. Test Ruff, Python compilation and whitespace checks pass. Full package import and full-file Deribit Ruff remain blocked by pre-existing Qt, msgspec model, and legacy Deribit lint errors unrelated to this patch.