ID Title Status Priority Created Due Date Actions
#1029 Pre-installed welcome_email app and api/app_templates welcome emails interpolate caller values into HTML unescaped
Found during #1018 sweep, not fixed there: enterprise/apps/pre_installed/welcome_email.py send (reci...
in-progress low 2026-10-20 06:03 -
Edit
#1028 Permission check for an unknown tenant answers 500 'Permission check failed' instead of 403/404
Found during #1020 (live): GET /api/v1/analytics/queues?tenant_id=nosuchtenant1020 as admin@test: re...
in-progress low 2026-10-20 06:03 -
Edit
#1027 /api/v1/mcp/servers routes carry no permission check
Found during #1001: GET/POST /api/v1/mcp/servers and DELETE /api/v1/mcp/servers/<name> (api/mcp_regi...
in-progress medium 2026-10-20 06:03 -
Edit
#1026 tools.mcp.call cannot import the MCP client: mcp 2.0.0 has streamable_http_client, code imports streamablehttp_client
Found by the #1001 fork (live, tenant test, runs 68fb8c37 and fca7638c failed with ImportError). uv....
in-progress high 2026-10-20 06:03 -
Edit
#1025 GET /workflows/<id>/metrics returns 500 for every existing run (queries jumper.e_/c_ by a run_id column they do not have)
Found during #1020 (live, tenant test, public URL, 2026-10-20): GET /api/v1/workflows/0cf24500-6508-...
in-progress medium 2026-10-20 06:03 -
Edit
#1024 Cancel route kills activity PIDs from the api container's PID namespace
Found while doing #916. api/blueprints/v1/workflows_lifecycle.py cancel_workflow reads process_pid f...
in-progress high 2026-10-20 06:01 -
Edit
#1023 get_jumper_client(queue_name=X) ignores X after the first call: spawns land on the process singleton's queue
Found while doing #916. engine/jumper_client.py get_jumper_client() is a process singleton; queue_na...
open high 2026-10-20 06:01 -
Edit
#1022 ShellOutputStreamer leaks the stdout/stderr pipe of every streamed shell command
EARS: When ShellOutputStreamer.run finishes (normally, on timeout or on a non-zero exit), it shall c...
open medium 2026-10-20 03:04 -
Edit
#1021 hwec dsl-prompt fails in the deployed image: engine/cli/DSL_PROMPT.txt is not in the highway-core package data
EARS: When highway-core is installed from its wheel (the Docker image does uv pip install ./docker/h...
open medium 2026-10-20 03:04 -
Edit
#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
#1017 Unit tests outside tests/unit/db write to highway_db_v2; root conftest runs UPDATEs via psql
EARS: When any pytest run collects tests/unit/api or tests/, no test or hook shall write to highway_...
closed high 2026-10-20 03:01 -
#1016 Approval email token is not bound to the approval id in the URL
EARS: When GET /api/v1/gateway/approvals/<approval_id>/respond validates a signed token, the API sha...
in-progress high 2026-10-20 03:01 -
Edit
#1015 Tenant-reachable tools: unverified static findings from the #1005 tools.* sweep
STATIC claims from a read-only subagent sweep during #1005. None reproduced; each needs a live repro...
in-progress high 2026-10-20 02:52 -
Edit
#1014 tools.workflow.spawn takes tenant_id from a workflow variable; definition lookups by name/id are not tenant-scoped
EARS: tools.workflow.spawn shall submit the child under ctx.tenant_id only. get_latest_definition an...
in-progress critical 2026-10-20 02:52 -
Edit
#1013 Tenant users can list, pause, drain, resize and delete shared platform workers (/api/v1/workers*)
EARS: The worker list and worker control endpoints shall be available only to platform admins (requi...
in-progress high 2026-10-20 02:52 -
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
#1010 gateway_approvals.py renders error text into HTML without escaping (XSS)
EARS: When the approval gateway renders an HTML page, every interpolated value shall be HTML-escaped...
in-progress high 2026-10-20 02:38 -
Edit
Previous Page 3 of 52 Next