| #1069 |
submit_workflow ignores queue= when the process already has a JumperClient: platform workflows meant for highway_internal run on highway_default; tenant onboarding fails at create_rate_limits
EARS SPEC:
- When submit_workflow is called with queue=Q, the engine shall create the workflow_run w...
|
closed |
critical |
2026-10-25 06:09 |
- |
|
| #1065 |
LLM usage records $0 for prism/deepseek-v4-flash: no PRICING entry for provider prism
EARS SPEC:
- When an LLM call is served by provider prism, the engine shall record a non-zero estima...
|
open |
medium |
2026-10-25 01:01 |
- |
|
| #1062 |
llm_routes health probe is single-turn: a provider that fails multi-turn tool calls stays green
EARS SPEC:
- The llm_routes health probe shall, for each candidate, send a two-turn tool-call exchan...
|
open |
high |
2026-10-24 00:16 |
- |
|
| #1060 |
openai_compat drops reasoning_content: DeepSeek thinking mode rejects every multi-turn tool call; agent runs on prism fail after the first tool call
EARS SPEC:
- When a provider response carries reasoning_content (or reasoning) on an assistant messa...
|
closed |
critical |
2026-10-23 23:10 |
- |
|
| #1058 |
Public workflow error reports max_attempts from the run budget, not the failing step's retry budget
EARS SPEC:
- When a step fails, the public workflow error shall report attempts and max_attempts of ...
|
open |
medium |
2026-10-23 23:05 |
- |
|
| #1057 |
Sandbox shell: stderr log read 409 (container dead or marked for removal) fails the user step
EARS SPEC:
- If the sandbox container's logs cannot be read because the container is being removed a...
|
open |
high |
2026-10-23 23:05 |
- |
|
| #1055 |
SensitiveDataFilter card pattern masks UUIDs in logs (run/app ids lost from audit logs)
EARS SPEC:
- If a log message or argument contains a UUID (8-4-4-4-12 hex), then the SensitiveDataFi...
|
closed |
high |
2026-10-23 21:05 |
- |
|
| #1053 |
CI red on 16720f9: size allowlist stale after #1041, gitleaks tracked-tree findings unnamed
EARS SPEC:
- The size gate shall pass on main: allowlist entries equal current line counts (api/test...
|
in-progress |
high |
2026-10-23 15:20 |
- |
|
| #1051 |
Permission checks that run on the api event loop can block it for up to POOL_TIMEOUT with a 1-connection auth pool
EARS SPEC:
- The api shall run every synchronous auth library call (Authorization reads and writes) ...
|
open |
high |
2026-10-22 23:12 |
- |
|
| #1046 |
Upload links follow-ups (#1042): cancel wakes the waiting workflow, /info stops returning internal ids, local download URL served
EARS SPEC:
- When a person cancels an upload request, the waiting workflow shall resume within 5 s w...
|
open |
medium |
2026-10-22 22:41 |
- |
|
| #1042 |
#931 T4: remove duplicate /storage/<ref> routes; make human upload links work end to end
EARS SPEC:
- The API shall not serve DELETE /api/v1/storage/<ref> or GET /api/v1/storage/<ref>/url; ...
|
in-progress |
medium |
2026-10-22 22:26 |
- |
|
| #1003 |
SwitchOperator runs every case: case tasks are ordinary graph tasks (auto-chained before the switch) and only the head of an unselected case is skipped
EARS: When a SwitchOperator selects a case, the Highway engine shall run only that case's task and t...
|
in-progress |
high |
2026-10-20 01:49 |
- |
|
| #993 |
tools.update.handle blanks {{update_payload.*}} before the handler sees it
EARS: When an update handler task runs, the engine shall resolve {{update_payload.*}} from the updat...
|
in-progress |
medium |
2026-10-20 01:18 |
- |
|
| #992 |
DSL prompt documents {{workflow.variable_name}}, which the resolver does not support
EARS: The DSL prompt shall document only template forms the resolver implements; if {{workflow.x}} i...
|
in-progress |
medium |
2026-10-20 01:18 |
- |
|
| #990 |
Condition evaluation error silently falls back to a truthy check: '{{x.stdout}} == ...' with a trailing newline always selects if_true
EARS: If a ConditionOperator / While condition cannot be evaluated (syntax error after interpolation...
|
in-progress |
high |
2026-10-20 01:10 |
- |
|
| #989 |
Cancelling or permanently failing a parallel-branch task flips the RUNNING parent workflow_run (trigger update_workflow_run_on_task_failure has no branch exclusion)
EARS: When a tools.workflow.execute_branch task reaches state cancelled or failed, the engine shall ...
|
in-progress |
high |
2026-10-20 00:55 |
- |
|
| #987 |
Branch failures accepted by wait_for_parallel_branches(all_of) never reach the #956 unrecovered-failure rule
EARS: If a branch task fails with a handler and nothing downstream accepts the failure, then the run...
|
open |
medium |
2026-10-20 00:47 |
- |
|
| #986 |
Pause is not honoured inside parallel branches
EARS: While a run is paused, the engine shall not start the next task of any of its branch runs. Fou...
|
open |
medium |
2026-10-20 00:47 |
- |
|
| #985 |
Workflow deadline expiry does not run the branch/child/activity teardown
EARS: When a run's deadline expires, the engine shall tear down pending and sleeping branch runs, ch...
|
open |
high |
2026-10-20 00:47 |
- |
|
| #984 |
Explicit cancel via API does not cancel sleeping branch runs
EARS: When a run is cancelled through the API, the engine shall cancel its pending and sleeping bran...
|
open |
high |
2026-10-20 00:47 |
- |
|