| #977 |
Undefined template path renders as an empty string without any warning
EARS: If a {{path}} placeholder in a task argument resolves to no value, then the Highway engine sha...
|
open |
medium |
2026-10-20 00:43 |
- |
|
| #976 |
Failed run exposes only workflow_failed in /events and /steps; earlier successful steps vanish
EARS: When a workflow run fails, GET /workflows/{id}/events and /steps shall still return the events...
|
in-progress |
medium |
2026-10-20 00:43 |
- |
|
| #975 |
A dependency on a nonexistent task is accepted; dependent tasks are silently skipped and the run completes
EARS: If a workflow definition names a dependency that is not a task in the definition, then the Hig...
|
in-progress |
high |
2026-10-20 00:43 |
- |
|
| #974 |
Condition operator: dependents run before the selected branch finishes; a one_success join of branch tails fails the run while the tail sleeps
EARS: When a Condition branch contains chained tasks, the Highway engine shall offer a way for a dow...
|
in-progress |
high |
2026-10-20 00:43 |
- |
|
| #973 |
ForEach over an empty list runs the loop-body task once outside the loop with an empty {{item}}
EARS: If a ForEach operator resolves zero items, then the Highway engine shall execute zero loop-bod...
|
in-progress |
high |
2026-10-20 00:43 |
- |
|
| #972 |
Template interpolation into tools.shell.run is raw text: upstream output executes as shell (bypasses #374 quoting)
EARS: When a {{var}} placeholder is resolved into a tools.shell.run command, the Highway engine shal...
|
in-progress |
high |
2026-10-20 00:43 |
- |
|
| #967 |
Unrecovered handled failure waits for unrelated sleeping paths before the run fails
EARS: When a failed step can no longer be consumed by any dependent that accepts failures, the engin...
|
in-progress |
medium |
2026-10-17 17:34 |
- |
|
| #966 |
Branch on_failure handlers never run; handler referenced inside a parallel branch lambda is auto-chained in the parent and runs unconditionally
EARS: When a task inside a parallel branch fails and declares on_failure, the engine shall run that ...
|
in-progress |
high |
2026-10-17 17:34 |
- |
|
| #960 |
Branch runs log step_succeeded twice; step event results truncated to 200 chars as Python repr
EARS: Each step shall log exactly one step_succeeded event, and event payload results shall be JSON....
|
in-progress |
low |
2026-10-17 00:50 |
- |
|
| #957 |
Trace has no span for a task that fails before its first external call
EARS: The trace endpoint shall include a span for a task that failed before its first external call....
|
in-progress |
medium |
2026-10-17 00:50 |
- |
|
| #956 |
on_failure handler makes a failed step's run report completed
EARS: When a step fails and its on_failure handler succeeds, the run status shall show the step fail...
|
closed |
high |
2026-10-17 00:50 |
- |
|
| #955 |
ALL_OF JoinOperator lets the workflow continue when join_satisfied=false
EARS: If an ALL_OF join has a failed or missing branch, then the engine shall not run the join's dep...
|
closed |
critical |
2026-10-17 00:50 |
- |
|
| #910 |
App SDK ctx.checkpoint() promises exactly-once replay caching and delivers none in production
EARS SPEC:
- When an app action calls ctx.checkpoint(step_name, func) and the workflow later resumes...
|
open |
high |
2026-08-22 12:04 |
- |
|
| #909 |
App-originated tool calls silently bypass rate limiting and per-workflow circuit-breaker isolation (ProxyDurableContext is not a DurableContext)
EARS SPEC:
- While an app action is executing, when it invokes a rate-limited tool, the Highway engi...
|
open |
high |
2026-08-22 12:04 |
- |
|
| #908 |
Platform tenant deactivate/reactivate return 200 but the workflow dies: internal.tenant.suspend/reactivate are never registered
EARS SPEC:
- If a workflow task references a tool name that is not present in the tool registry, the...
|
in-progress |
high |
2026-08-22 12:02 |
- |
|
| #905 |
hwe logs_workflow is a dead command: decorated @cli.group() instead of @logs.command(), unreachable in both spellings
EARS SPEC:
- The hwe CLI shall expose a working command for reading a workflow's logs.
- A click com...
|
open |
medium |
2026-08-22 11:57 |
- |
|
| #846 |
Replay never executes tools (#833), so while conditions driven by ctx.set_variable can never resolve in simulation
EARS SPEC:
- While executing in replay/simulation mode, when a workflow variable was set by a tool v...
|
open |
medium |
2026-08-03 18:55 |
- |
|
| #845 |
Replay simulation runs while-loop to the 10000 cap: agent_scheduled never terminates under mocked side effects
EARS SPEC:
- The Highway replay service shall bound simulation of a while loop to the iteration coun...
|
closed |
high |
2026-08-03 16:44 |
- |
|
| #844 |
circuit-breakers 503: Vault password for resilient_circuit_db never applied to the postgres role
EARS SPEC:
- When GET /api/v1/circuit-breakers is called by an authorized caller, the Highway API sh...
|
closed |
critical |
2026-08-03 16:44 |
- |
|
| #843 |
health/metrics 500s: get_health_metrics builds jumper.r_%I, breaks on queue named "default"
EARS SPEC:
- When get_health_metrics builds a per-queue SQL statement, the Highway health metrics fu...
|
closed |
critical |
2026-08-03 16:44 |
- |
|