Skip to content

v0.3.45

@sroussey sroussey tagged this 15 Aug 19:27
## @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
Assets 2
Loading