| #1056 |
Manual deploy of a5d4f45 to vm-1 (director-approved stopgap until CI G15)
EARS SPEC:
- When the director approves a manual deploy (2026-10-23), the operator shall build highw...
|
in-progress |
critical |
2026-10-23 22:41 |
- |
|
| #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 |
- |
|
| #1052 |
Adopt auth 3.5.0 check_schema in place of Highway's own column check
EARS SPEC:
- The highway lock shall install auth==3.5.0 (wheel sha256 3e0a7ba8e7ebdce1d8095691fe88de...
|
in-progress |
medium |
2026-10-23 02:40 |
- |
|
| #1047 |
LLM providers send config/env API keys to a caller-supplied base_url (ollama, OpenAI-compat set, anthropic)
EARS: If a tools.llm.call caller passes base_url and no api_key/api_key_secret_id, then the router s...
|
in-progress |
high |
2026-10-22 22:44 |
- |
|
| #1045 |
Pin auth 3.4.0; size and scope the embedded auth pool for pg-nano (AUTH_DATABASE_POOL_*), every Authorization session closed
EARS SPEC:
- Highway shall pin auth==3.4.0 in pyproject.toml and uv.lock.
- Every engine container t...
|
in-progress |
high |
2026-10-22 22:40 |
- |
|
| #1044 |
LLM router: Prism provider, deepseek-v4-flash as default chat model (#921 chat half)
EARS SPEC:
- The LLM router shall offer a provider 'prism' (OpenAI-compatible, base [llm.providers.p...
|
in-progress |
high |
2026-10-22 22:28 |
- |
|
| #1043 |
Stopgap for #945/#1006: only the platform tenant may publish app versions, and only platform-published versions execute
EARS SPEC:
- If a tenant other than platform calls POST /api/v1/apps (create with its own publisher)...
|
in-progress |
high |
2026-10-22 22:26 |
- |
|
| #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 |
- |
|
| #1041 |
#931 T1+T2+T6: delete dead, no-op and unused routes and the /admin/tokens credential type
EARS SPEC:
- The Highway API shall not serve the T1 routes (/api/v1/../u/<token>, shadowed version.g...
|
in-progress |
medium |
2026-10-22 22:26 |
- |
|
| #1032 |
T0 (#931): agent/session/trigger/automation/agent-run and Gmail/Telegram routes have no permission check; idempotency reset routes delete across tenants
EARS SPEC:
- When a caller who is not a member of tenant T with the required permission calls any /a...
|
in-progress |
critical |
2026-10-20 06:58 |
- |
|
| #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 |
- |
|
| #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 |
- |
|
| #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 |
- |
|
| #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 |
- |
|
| #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 |
- |
|
| #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 |
- |
|
| #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 |
- |
|
| #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 |
- |
|
| #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 |
- |
|
| #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 |
- |
|