Clear Filters
ID Title Status Priority Created Due Date Actions
#1020 Statistics routes have no permission check; query route leaks a DB connection per call and answers 200 for missing runs
Found during #1012. (1) GET /workflows/stats, /workflows/<id>/metrics, /workflows/heatmap carry @spe...
in-progress medium 2026-10-20 03:01 -
Edit
#1019 Approval status endpoint is unauthenticated and cross-tenant; approver IP taken from X-Forwarded-For first hop
Found during #1010. (1) GET /api/v1/gateway/approvals/<approval_id>/status has no auth and queries p...
in-progress medium 2026-10-20 03:01 -
Edit
#1018 User-welcome and invitation emails interpolate unescaped values into HTML
EARS: When the API builds an HTML email body, every interpolated value shall be HTML-escaped. Found ...
in-progress medium 2026-10-20 03:01 -
Edit
#1012 Bad caller input that reaches SQL returns 500 instead of 400
EARS: If request parameters are invalid (e.g. /workflows/stats?since=garbage), then the API shall re...
in-progress medium 2026-10-20 02:38 -
Edit
#1011 Global ValueError handler echoes exception text to clients
EARS: If an unhandled ValueError reaches the API error handler, then the response shall carry a stab...
in-progress medium 2026-10-20 02:38 -
Edit
#1001 MCP server token kept when the server URL changes and not bound to the registered server
EARS: When a tenant re-registers an MCP server name with a different URL, the system shall drop the ...
in-progress medium 2026-10-20 01:42 -
Edit
#999 Tenant secret key rotation tooling: reload ring once on unknown key id; hwe secrets reseal
EARS: When the store reads an envelope whose key id is not in the cached key ring, it shall reload t...
open medium 2026-10-20 01:42 -
Edit
#998 Encryption keys: env wins over platform file with no drift guard (HIGHWAY_ENCRYPTION_KEY, RBAC_MASTER_ENCRYPTION_KEY)
EARS: When the JSONB encryption key or the RBAC master key is configured in both the environment and...
open medium 2026-10-20 01:42 -
Edit
#997 TenantRateLimiter run-lease methods have no tests
EARS: The run-lease path of engine/policies/tenant_rate_limiter.py shall have unit tests that go red...
open medium 2026-10-20 01:40 -
Edit
#995 LLM provider api key by secret_id never resolves: engine.tools.secrets does not exist
EARS: When tools.llm.call is given a secret_id, the system shall resolve the API key from the callin...
in-progress medium 2026-10-20 01:19 -
Edit
#993 tools.update.handle blanks {{update_payload.*}} before the handler sees it
bug
EARS: When an update handler task runs, the engine shall resolve {{update_payload.*}} from the updat...
in-progress medium 2026-10-20 01:18 -
Edit
#992 DSL prompt documents {{workflow.variable_name}}, which the resolver does not support
bug
EARS: The DSL prompt shall document only template forms the resolver implements; if {{workflow.x}} i...
in-progress medium 2026-10-20 01:18 -
Edit
#988 highway_dsl WorkflowBuilder.build() should reject branch handlers defined outside the branch lambda
EARS: When WorkflowBuilder.build() runs, it shall raise ValueError if any task inside a ParallelOper...
open medium 2026-10-20 00:47 -
Edit
#987 Branch failures accepted by wait_for_parallel_branches(all_of) never reach the #956 unrecovered-failure rule
bug
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 -
Edit
#986 Pause is not honoured inside parallel branches
bug
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 -
Edit
#982 Unit tests that depend on production database state fail on an empty database
EARS: The superproject and engine unit suites shall pass against an empty database built from the mi...
open medium 2026-10-20 00:46 -
Edit
#981 jumper standalone: 7 of 40 client tests fail against jumper's own migrations (task status columns shifted)
EARS: When the jumper repository's migrations are applied to an empty PostgreSQL 16 or 18 database, ...
in-progress medium 2026-10-20 00:46 -
Edit
#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 -
Edit
#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 -
Edit
#968 Remove SMTP leftovers after #927: core config.ini [email], config.example.ini x2, preinstalled_apps.yaml default_secrets, aiosmtplib extra, CLAUDE.md SMTP sections
EARS SPEC: - The Highway repositories shall contain no SMTP host, SMTP username or Vault mail-secret...
closed medium 2026-10-20 00:09 -
Previous Page 2 of 18 Next