Skip to content

Commit 9972a34

Browse files
chore(release): v0.11.0
1 parent 52bedcf commit 9972a34

27 files changed

Lines changed: 358 additions & 128 deletions

.changeset/cozy-peas-stand.md

Lines changed: 0 additions & 12 deletions
This file was deleted.

.changeset/fancy-wombats-buy.md

Lines changed: 0 additions & 6 deletions
This file was deleted.

.changeset/heavy-friends-beg.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/honest-years-smash.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/lazy-suits-stop.md

Lines changed: 0 additions & 66 deletions
This file was deleted.

.changeset/swift-snails-bet.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/two-socks-post.md

Lines changed: 0 additions & 19 deletions
This file was deleted.

api/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# output-api
22

3+
## 0.11.0
4+
5+
### Minor Changes
6+
7+
- 64a9df7: Add workflow monitor command, update workflow history API to be resumable
8+
- b7b2fbe: API: removed morgan library, refactored logs to include more information in message, and changed 'status' to 'http.status_code'
9+
310
## 0.10.0
411

512
### Minor Changes

api/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "output-api",
3-
"version": "0.10.0",
3+
"version": "0.11.0",
44
"description": "A simple flow core abstract",
55
"type": "module",
66
"main": "index.js",

docs/guides/changelog/index.mdx

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,106 @@ Releases with breaking changes link to a matching section on the [Migrations](/m
99

1010
{/* AUTO-GENERATED:START — do not edit by hand. Run ./ops/regenerate_docs.sh */}
1111

12+
<Update label="v0.11.0" description="2026-07-24 · minor release">
13+
14+
**`@outputai/llm`** — Added stricter LiquidJs settings for prompt files parsing. The following configurations were added:
15+
```js
16+
{
17+
strictFilters: true,
18+
strictVariables: true,
19+
lenientIf: true
20+
}
21+
```
22+
23+
**`@outputai/cli`, `output-api`** — Add workflow monitor command, update workflow history API to be resumable
24+
25+
**`output-api`** — API: removed morgan library, refactored logs to include more information in message, and changed 'status' to 'http.status_code'
26+
27+
**`@outputai/cli`** — Restore the terminal on abnormal `output dev` exit. Uncaught exceptions and unhandled rejections now leave the alternate-screen buffer and unmount the TUI before exiting, so scrollback and the error stack stay readable.
28+
29+
**`@outputai/core`** — ## Workflow Activity Invocation
30+
31+
- Refactored workflow activity invocation so steps, evaluators, and shared activities use the same runtime dispatcher
32+
instead of `this`-based handler dispatch.
33+
34+
Workflow handlers no longer need to be rewritten from arrow functions into regular functions for activity dispatch,
35+
reducing AST rewrite complexity during worker startup and making bundling more predictable.
36+
37+
- Step and evaluator calls can now be placed in helper functions and imported helper modules used by a workflow.
38+
Helpers no longer need to pass a workflow-bound `this` value through their call chain.
39+
40+
## Child Workflow Activity Options
41+
42+
- A child workflow's definition-level `options.activityOptions` now override activity options inherited from its parent. Invocation-level `activityOptions` still override both, and a step or evaluator's own `options.activityOptions` remain the most specific.
43+
44+
- If a parent must override a child's retry or timeout configuration, pass `activityOptions` explicitly when invoking the child workflow.
45+
46+
## Shared Activity Namespaces
47+
48+
- Removed the previous `"$shared"` activity namespace by registering shared activities into each workflow namespace. This means workflows can call local and shared activities through the same activity resolution path.
49+
50+
- Shared activity types now use `"<workflow-name>#<activity-name>"` instead of `"$shared#<activity-name>"`.
51+
52+
- Added validation that prevents workflow-scoped activities from using the same activity name as a shared activity. If a workflow defines an activity with the same name as a shared activity, worker startup now fails validation instead of allowing ambiguous activity resolution.
53+
54+
## Workflow Code Validation
55+
56+
- Added fail-fast validation for default exports and `export *` declarations in steps/evaluators files. Steps and evaluators already needed to be exposed through named exports for workflow rewriting. The worker now reports these unsupported forms directly during startup.
57+
58+
```js
59+
// valid
60+
export const foo = step( { name: 'foo' } );
61+
62+
// invalid
63+
export default step( { name: 'foo' } );
64+
export * from './other_steps.js';
65+
```
66+
67+
- Added fail-fast validation for unsupported steps/evaluators import shapes. Imports from steps/evaluators files already needed to use named imports or destructured requires for workflow rewriting.
68+
69+
The worker now fails fast with a validation error for unsupported import shapes like default imports, namespace imports, or non-destructured requires.
70+
71+
```js
72+
// valid
73+
import { foo } from './steps.js';
74+
const { bar } = require( './evaluators.js' );
75+
76+
// invalid
77+
import foo from './steps.js';
78+
import * as steps from './steps.js';
79+
const steps = require( './steps.js' );
80+
```
81+
82+
- Added validation that activity calls must happen inside functions.
83+
Calling a step or evaluator at module top level now fails validation.
84+
85+
```js
86+
import { foo } from './steps.js';
87+
88+
// invalid
89+
foo();
90+
```
91+
92+
**`@outputai/cli`** — fix `output dev` memory leak in TUI where workflow run details grew unbounded
93+
94+
**`@outputai/core`** — - Added `emit()` to `/hooks` entrypoint to emit custom events. Emitted events can be listened using `on()` and will have their payload wrapped in an envelope:
95+
```js
96+
{
97+
eventId: string,
98+
eventDate: number,
99+
outputActivityKind?: string,
100+
workflowDetails?: {},
101+
activityInfo?: {},
102+
payload: <original emitted payload>
103+
}
104+
```
105+
Events emitted outside an activity context omit `outputActivityKind`, `workflowDetails`, and `activityInfo`.
106+
- Added the same wrapping envelope to all other events listened to with `on()`: `http:request`, `cost:llm:request`, `cost:http:request`;
107+
- Added internal activity events to activity lifecycle: `onActivityStart`, `onActivityEnd`, `onActivityError`;
108+
- Updated internal triggers so `onError()` no longer receives errors from the internal `$catalog` workflow.
109+
110+
</Update>
111+
12112
<Update label="v0.10.0" description="2026-07-09 · minor release">
13113

14114
**`output-api`** — Workflow result endpoints no longer include unavailable trace destinations instead of returning them as `null`.

0 commit comments

Comments
 (0)