| #967 |
Unrecovered handled failure waits for unrelated sleeping paths before the run fails
EARS: When a failed step can no longer be consumed by any dependent that accepts failures, the engin...
|
in-progress |
medium |
2026-10-17 17:34 |
- |
|
| #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 |
- |
|
| #958 |
Expose attempt number to tasks and resolve args per attempt
EARS: The engine shall expose the current attempt number as a workflow variable and shall resolve ta...
|
in-progress |
medium |
2026-10-17 00:50 |
- |
|
| #957 |
Trace has no span for a task that fails before its first external call
EARS: The trace endpoint shall include a span for a task that failed before its first external call....
|
in-progress |
medium |
2026-10-17 00:50 |
- |
|
| #954 |
Admin surface for per-tenant LLM token quota (hw.llm.tokens) + enable [tokengate] llm_token_quota
EARS: The platform admin shall be able to set a per-tenant hw.llm.tokens quota (TokenGate quota poli...
|
in-progress |
medium |
2026-10-17 00:13 |
- |
|
| #952 |
Move API workflow-submission bucket (require_rate_limit / TenantRateLimiter.check_quota) to TokenGate, decoupled from run leases
EARS: The workflow submission rate limit shall be a TokenGate rate_limit policy on resource hw.workf...
|
in-progress |
medium |
2026-10-17 00:13 |
- |
|
| #951 |
Drop local tool rate-limit counters (tool_rate_limit_usage + consume/check/cleanup SQL functions) after TokenGate path verified in production
EARS: When the TokenGate tool-limit path (#928) has run in production with no fail-closed incidents ...
|
in-progress |
medium |
2026-10-17 00:13 |
- |
|
| #938 |
Workflow result is not the last task's result (test_docker_tools compose_simple/inspect/network_isolation fail)
EARS: When a sequential workflow completes, the workflow result exposed by GET /api/v1/workflows/{id...
|
closed |
medium |
2026-10-15 23:43 |
- |
|
| #933 |
Test falsifiability programme: mutation testing on critical modules, red-first rule
EARS SPEC:
- Every new or changed test shall be shown failing against a sabotaged guard before green...
|
open |
medium |
2026-10-15 23:07 |
- |
|
| #931 |
Bloat review: classify all API routes core/keep/remove; app-system extension design
EARS SPEC:
- Every API route shall be classified core/keep/remove with a reason, and removals shall ...
|
in-progress |
medium |
2026-10-15 23:07 |
- |
|
| #922 |
Remove Ollama-only features: generate-workflow, dsl/ask, dsl/search, RAG tools, ragit, SearXNG, ollama service
EARS SPEC:
- The API shall not expose /generate-workflow, /dsl/ask or /dsl/search.
- The engine shal...
|
in-progress |
medium |
2026-10-15 23:07 |
- |
|
| #918 |
CI on ci.rodmena.co.uk: ruff, mypy, tests
EARS SPEC:
- When a commit is pushed to main, ci.rodmena.co.uk shall run ruff, mypy and the test sui...
|
in-progress |
medium |
2026-10-15 23:07 |
- |
|
| #917 |
Purge: root clutter, Jenkins, GitHub workflows, SonarQube, Dockerfile.production, helm, ansible, systemd, dead enterprise/sandbox
EARS SPEC:
- The repository shall contain no Jenkinsfile, .github/workflows, SonarQube config/script...
|
closed |
medium |
2026-10-15 23:07 |
- |
|
| #905 |
hwe logs_workflow is a dead command: decorated @cli.group() instead of @logs.command(), unreachable in both spellings
EARS SPEC:
- The hwe CLI shall expose a working command for reading a workflow's logs.
- A click com...
|
open |
medium |
2026-08-22 11:57 |
- |
|
| #904 |
Split docker/highway-core/engine/orchestrator/execution_helpers.py (551 lines, over 550 hard cap)
EARS SPEC:
- The file docker/highway-core/engine/orchestrator/execution_helpers.py shall be reduced ...
|
open |
medium |
2026-08-22 11:45 |
- |
|
| #903 |
Split api/blueprints/v1/health.py (553 lines, over 550 hard cap)
EARS SPEC:
- The file api/blueprints/v1/health.py shall be reduced to at most 500 lines, and shall n...
|
open |
medium |
2026-08-22 11:45 |
- |
|
| #902 |
Split api/blueprints/v1/replay.py (554 lines, over 550 hard cap)
EARS SPEC:
- The file api/blueprints/v1/replay.py shall be reduced to at most 500 lines, and shall n...
|
open |
medium |
2026-08-22 11:45 |
- |
|
| #901 |
Split enterprise/storage/artifact_service.py (575 lines, over 550 hard cap)
EARS SPEC:
- The file enterprise/storage/artifact_service.py shall be reduced to at most 500 lines, ...
|
open |
medium |
2026-08-22 11:45 |
- |
|
| #900 |
Split enterprise/tools/scriptplan.py (578 lines, over 550 hard cap)
EARS SPEC:
- The file enterprise/tools/scriptplan.py shall be reduced to at most 500 lines, and shal...
|
open |
medium |
2026-08-22 11:45 |
- |
|