| #77 |
FTX-77: RunFlow terminal wiring + sync worker (P2)
runflow_sync_jobs outbox written inside terminalize transaction (approved->approve post-clearance UN...
|
closed |
high |
2026-07-23 15:08 |
- |
|
| #76 |
FTX-76: RunFlow bindings + client (P2)
runflow_bindings table (workflow_id, node_ref, Fernet credential, single_gate mode UB-RF-2, behavior...
|
closed |
high |
2026-07-23 15:08 |
- |
|
| #72 |
FTX-72: request_changes semantics (P2)
Policy on_request_changes terminal|hold (default terminal); changes_requested terminal status + feed...
|
closed |
high |
2026-07-23 15:08 |
- |
|
| #71 |
FTX-71: Clearance profiles (P2)
clearance_instances table + clearance tasks as ordinary tasks rows (tasks.clearance_instance_id) thr...
|
closed |
high |
2026-07-23 15:08 |
- |
|
| #70 |
FTX-70: PRODUCTION_READINESS.md certification
AC-1..14 matrix with pytest node-id evidence (all 14 in scope, AC-6 real via clearance+RunFlow); per...
|
closed |
high |
2026-07-23 15:08 |
- |
|
| #69 |
FTX-69: Concurrency + isolation E2E packs
Concurrency: double-approve, one-click double-consume, approve-vs-expire, n_of_m triple race (dedup_...
|
open |
high |
2026-07-23 15:08 |
- |
|
| #68 |
FTX-68: Real E2E harness
tests/e2e/ marker e2e, zero mocks: futex_api + futex_worker subprocesses against futex_test; real au...
|
closed |
high |
2026-07-23 15:08 |
- |
|
| #67 |
FTX-67: Mail-api key + template provisioning
Provision valid MAIL_API_KEY via rodmena-mail-api admin CLI (current key returns unknown_api_key) + ...
|
closed |
high |
2026-07-23 15:08 |
- |
|
| #66 |
FTX-66: Deployment cutover
/etc/futex/futex.env (rotated secrets 0640); futex-api.service (User=farshid, port 8020, Environment...
|
closed |
high |
2026-07-23 15:08 |
- |
|
| #65 |
FTX-65: One-click confirm interstitial
GET /a/click/{token} renders confirm form without consuming (EV-AW-4; also fixes TemplateResponse(re...
|
closed |
high |
2026-07-23 15:08 |
- |
|
| #63 |
FTX-63: MCP tool schema + parity fixes
proposed_action/context as type:object (no JSON-string double-encode); hitl_act_on_task gains reason...
|
closed |
high |
2026-07-23 15:08 |
- |
|
| #58 |
FTX-58: Terminal outcome envelope (UB-OUT-1)
build_outcome_envelope(): decision_id/tenant/status/policy/context_hash/outcome{result,reasons,justi...
|
closed |
high |
2026-07-23 15:08 |
- |
|
| #57 |
FTX-57: Router/package split
Decompose 987-line app/main.py into app/{config,db,errors,middleware,obs}.py + routers/ + domain/ + ...
|
open |
high |
2026-07-23 15:08 |
- |
|
| #56 |
FTX-56: SLA/escalation worker loop
Tasks past sla_deadline FOR UPDATE SKIP LOCKED; escalation path entries remind/notify_manager/reassi...
|
closed |
high |
2026-07-23 15:08 |
- |
|
| #53 |
FTX-53: Expiry worker loop
ACTIVE-status decisions past expires_at batch FOR UPDATE SKIP LOCKED -> terminalize(timed_out) or po...
|
closed |
high |
2026-07-23 15:08 |
- |
|
| #51 |
FTX-51: SLA deadlines at creation + delegation caps
tasks.sla_deadline set from step.sla ISO-8601 at instantiation (currently never set -> SLA dead code...
|
closed |
high |
2026-07-23 15:08 |
- |
|
| #50 |
FTX-50: Policy versioning + snapshot + validation
policies version/status(draft|active|disabled)/key columns; decision stores policy_snapshot JSONB at...
|
closed |
high |
2026-07-23 15:08 |
- |
|
| #49 |
FTX-49: Separation of Duties full enforcement
Assignment-time filter + action-time mutual-exclusion vs prior actors from actions table; EV-TSK-2 n...
|
closed |
high |
2026-07-23 15:08 |
- |
|
| #48 |
FTX-48: Idempotency upsert
UNIQUE(tenant_id, idempotency_key) migration (current index non-unique) + INSERT ON CONFLICT DO NOTH...
|
closed |
high |
2026-07-23 15:08 |
- |
|
| #43 |
FTX-43: SSRF guard rewrite + secret hygiene
net_guard resolve-validate-pin (closes DNS rebinding TOCTOU); WEBHOOK_ALLOW_HOSTS env replaces hardc...
|
closed |
high |
2026-07-23 15:08 |
- |
|