Implement remote sessions and the remote collecting API on top of the local event stream.
Scope
Add FeedReader.stream/2, FeedReader.close/1, and FeedReader.fetch_and_parse/2. Download and checksum before returning a session, parse the owned local source once, expose fetch metadata, and reuse the bounded collector for remote results.
Acceptance Criteria
stream/2 returns a session with remote Fetch metadata.
close/1 is idempotent and cleans unconsumed owned resources.
fetch_and_parse/2 requires finite max_items and returns RemoteResult.
Unchanged outcomes expose no events or partial results.
Normal completion, explicit close, parser errors, cancellation, and collector limits are tested.
## Objective
Implement remote sessions and the remote collecting API on top of the local event stream.
## Scope
Add `FeedReader.stream/2`, `FeedReader.close/1`, and `FeedReader.fetch_and_parse/2`. Download and checksum before returning a session, parse the owned local source once, expose fetch metadata, and reuse the bounded collector for remote results.
## Acceptance Criteria
- `stream/2` returns a session with remote `Fetch` metadata.
- `close/1` is idempotent and cleans unconsumed owned resources.
- `fetch_and_parse/2` requires finite `max_items` and returns `RemoteResult`.
- Unchanged outcomes expose no events or partial results.
- Normal completion, explicit close, parser errors, cancellation, and collector limits are tested.
mmacia
self-assigned this 2026-10-16 10:12:49 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Objective
Implement remote sessions and the remote collecting API on top of the local event stream.
Scope
Add
FeedReader.stream/2,FeedReader.close/1, andFeedReader.fetch_and_parse/2. Download and checksum before returning a session, parse the owned local source once, expose fetch metadata, and reuse the bounded collector for remote results.Acceptance Criteria
stream/2returns a session with remoteFetchmetadata.close/1is idempotent and cleans unconsumed owned resources.fetch_and_parse/2requires finitemax_itemsand returnsRemoteResult.