| #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 |
- |
|
| #1068 |
Retire Highway copilot (copilot.highway.rodmena.app code completion)
EARS SPEC:
- When a client requests copilot.highway.rodmena.app after retirement, the edge shall ans...
|
closed |
medium |
2026-10-25 06:03 |
- |
|
| #1067 |
Remove dead S3/MinIO and SMTP-era host pins: compose extra_hosts s3.rodmena.co.uk and mail.rodmena.co.uk, docker/.env S3_*, stale host /etc/highway/config.ini
EARS SPEC:
- The Highway containers shall not pin s3.rodmena.co.uk or mail.rodmena.co.uk in extra_ho...
|
closed |
medium |
2026-10-25 02:31 |
- |
|
| #1064 |
Retire the highway-dsl generator (dsl-generator.service, dsl.rodmena.app, dsl.mcp.highway.rodmena.app) and its clients
EARS SPEC:
- The dsl-generator service on vm-1 shall not run and shall not start at boot.
- When a c...
|
closed |
high |
2026-10-25 00:59 |
- |
|
| #1063 |
highway-dsl generator (vm-1 dsl-generator.service): clear provenance findings brotli, certifi, werkzeug, setuptools
EARS SPEC:
- The dsl-generator venv (highway_dsl/app/.venv-uv313) shall contain no package version w...
|
closed |
high |
2026-10-24 22:59 |
- |
|
| #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 |
- |
|
| #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 |
- |
|
| #1036 |
A deactivated tenant is not blocked anywhere: no code reads tenant_client_keys.status
EARS SPEC (draft):
- While a tenant's tenant_client_keys.status is 'deactivated', the Highway API sh...
|
closed |
high |
2026-10-20 07:10 |
- |
|
| #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 |
- |
|
| #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 |
- |
|
| #965 |
Reduce idle PostgreSQL connections: pool_min_size 1, pool_max_idle 90s
EARS: While a Highway service is idle, each engine pool shall hold at most 1 connection, and an idle...
|
closed |
high |
2026-10-17 02:49 |
- |
|
| #964 |
TokenGate client: per-process concurrency cap below TG's 24 per tenant
EARS: The sum of in-flight TokenGate calls across ALL Highway processes (api, worker x2, activity-wo...
|
closed |
low |
2026-10-17 01:01 |
- |
|
| #963 |
POST /admin/api-keys ignores documented expires_in_days; key never expires
EARS: When POST /api/v1/admin/api-keys receives expires_in_days, the API shall set expires_at = now ...
|
closed |
high |
2026-10-17 00:53 |
- |
|
| #962 |
Split tests/unit/test_tool_rate_limiter.py (838 lines) below 500
EARS: test files shall stay under 500 lines.
|
closed |
low |
2026-10-17 00:50 |
- |
|
| #961 |
Remaining sandbox-broken demos: demo-matrix allowlist, workflows/ README gate, demo/*.py, test-logging-pipeline.sh, stale refs
From #944 report: demo-matrix 58 python.run tasks blocked by python_task_policy; workflows/ hello_wo...
|
closed |
medium |
2026-10-17 00:50 |
- |
|
| #959 |
Reply-tag wire address should use a keyed HMAC, not a plain hash
EARS: The wire reply tag shall be HMAC(server secret, tenant_id, tag) so a third party who knows a t...
|
closed |
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 |
- |
|
| #950 |
Email: expose mail-api send features and durable reply-wait via plus-tags
EARS SPEC:
- tools.email.send and ctx.send_email shall accept cc, bcc, reply_to, from_name, schedule...
|
closed |
high |
2026-10-16 23:02 |
- |
|
| #949 |
Postgres password is the literal 'postgres'; rotate and stop sharing the superuser across services
EARS: No service shall connect to PostgreSQL with a default or repo-visible password; the superuser ...
|
closed |
critical |
2026-10-16 01:55 |
- |
|