## @workglow/task-graph
### Breaking Changes
- **bug fixes(task-graph)**: stop clearRun dangling blob refs; restore the publish test gate (#793)
- **refactors(task-graph)**: always return a Promise from getOutputStreamByRef
### Features
#### task-graph
- publish the run's resolved cache on IExecuteContext
- recognize stream-consuming sink tasks
- stream N binary output ports to cache on the unflagged path
### Bug Fixes
#### task-graph
- cover the co-located tests the Promise collapse missed
- re-resolve credential inputs on a re-run instead of blanking them (#799)
- stop clearRun dangling blob refs; restore the publish test gate (#793)
- run a pure stream consumer through the stream pump
- restore force-accumulate protection for leaf tasks
- gate force-accumulate on materializing consumers, not streaming ones
- a non-cacheable task ignores the cache when deciding accumulation
- add missing override modifier in multi-binary port test
### Refactors
#### task-graph
- always return a Promise from getOutputStreamByRef
#### tasks
- pin response_type at every call site
### Performance
#### task-graph
- delete a run's private cache rows by name, not by scanning
### Tests
#### task-graph
- pin the undeclared-executeStream warning as reachable
- pin the streaming memory bound
- resolve accumulation test through the package entry
- pin the no-sink-and-no-accumulator hole for multi-binary tasks
- pin the all-or-nothing multi-port cache-ref invariant
### Documentation
#### task-graph
- document cache write ordering, correct the blob-name claim
- state the ICacheRef.port writer guarantee, and test it
## @workglow/test
### Breaking Changes
- **features(tasks)**: FetchUrlTask gains a body stream port, response_type required
- **bug fixes(task-graph)**: stop clearRun dangling blob refs; restore the publish test gate (#793)
- **refactors(task-graph)**: always return a Promise from getOutputStreamByRef
### Features
#### tasks
- re-emit an out-of-process worker's CacheRef as deltas
- stream the queued fetch over the job channel
- 304 is a successful outcome carrying notModified
- stream the fetch body, verify Content-Length
- FetchUrlTask gains a body stream port, response_type required
#### task-graph
- stream N binary output ports to cache on the unflagged path
### Bug Fixes
#### task-graph
- re-resolve credential inputs on a re-run instead of blanking them (#799)
- stop clearRun dangling blob refs; restore the publish test gate (#793)
#### tasks
- fail a queued fetch carrying no response_type
- refuse a conditional request only where a row could be written
- report a queued fetch's falsy rejection as the failure it is
- release the body of a response the fetch never reads
- copy the fetch chunk the carrier is free to transfer away
- stop measuring a decoded body against its encoded Content-Length
- refuse response_type "stream" on a carrier that cannot stream
- refuse an undeclared private resolution from a domain-key fetch
- refuse a conditional request against every cache the run has
- stop replaying credentials to cross-origin redirect targets
- end the queued fetch's drain on the stream's own terminal event
- make the queued fetch's subclass seam and retry rule safe
### Refactors
#### task-graph
- always return a Promise from getOutputStreamByRef
#### tasks
- drop the speculative CacheRef byte source from the queued fetch
- pin response_type at every call site
### Performance
#### task-graph
- delete a run's private cache rows by name, not by scanning
### Tests
#### tasks
- say what the terminal-marker test actually pins
- cover FetchUrlTask's queued executeStream delegation
## @workglow/tasks
### Breaking Changes
- **features(tasks)**: drop the response_type default
- **features(tasks)**: FetchUrlTask gains a body stream port, response_type required
### Features
#### tasks
- re-emit an out-of-process worker's CacheRef as deltas
- stream the queued fetch over the job channel
- drop the response_type default
- 304 is a successful outcome carrying notModified
- stream the fetch body, verify Content-Length
- FetchUrlTask gains a body stream port, response_type required
### Bug Fixes
#### tasks
- fail a queued fetch carrying no response_type
- refuse a conditional request only where a row could be written
- report a queued fetch's falsy rejection as the failure it is
- release the body of a response the fetch never reads
- copy the fetch chunk the carrier is free to transfer away
- stop measuring a decoded body against its encoded Content-Length
- refuse response_type "stream" on a carrier that cannot stream
- refuse an undeclared private resolution from a domain-key fetch
- refuse a conditional request against every cache the run has
- stop replaying credentials to cross-origin redirect targets
- end the queued fetch's drain on the stream's own terminal event
- make the queued fetch's subclass seam and retry rule safe
- drop invalid override on FetchUrlTask.executeStream
- route queued FetchUrlTask runs through execute() from executeStream
### Refactors
#### tasks
- drop the speculative CacheRef byte source from the queued fetch
- pin response_type at every call site
### Documentation
#### tasks
- correct three claims the fetch's own code contradicts
- correct three overclaims in the queued fetch's stream contract
## @workglow/job-queue
### Breaking Changes
- **features(job-queue)**: pace a producing job by its stream consumers
- **features(job-queue)**: emitStreamEvent returns a delivery promise
### Features
#### job-queue
- pace a producing job by its stream consumers
- emitStreamEvent returns a delivery promise
### Bug Fixes
#### job-queue
- hold a job's claim while a stream event is parked
- advertise onStream only where an event can be delivered
### Refactors
#### tasks
- pin response_type at every call site
### Tests
#### job-queue
- fix pacing test setup and cover the half-channel gate
## @workglow/eval
### Bug Fixes
#### eval
- restore grok-4.5 pricing