feat(api): AIN-182 Phase 3 · tenant_routing_policies + GET/PUT#53
Conversation
New per-tenant routing-policy state surface backing the dashboard /settings/routing-policy editor (AIN-182 §Phase 3 §7). Migration 20260519_0021 adds tenant_routing_policies (PK on tenant_id, FK CASCADE). Columns: active_policy enum, quality/cost/ latency_weight NUMERIC(4,3), fallback_enabled bool, fallback_penalty_pct NUMERIC(5,2). DB CHECK enforces weight sum = 1.0 ±0.001 (D26) and penalty bounds [0, 100]. Endpoints: - GET /v1/routing-policy → row OR implicit Balanced default. compliance_veto_locked always true (Discipline #12). - PUT /v1/routing-policy → upsert via ON CONFLICT. Pydantic model_validator enforces weight-sum-to-1.0; DB CHECK is the final guard. CHECK breach → 400. Closes part of AIN-182 Phase 3.
AIN-182 🔴 Dashboard 6 missing pages from D-153 spec — Glance, Agent detail, Inference detail, Templates gallery, Template editor, Routing policy
Severity: 🔴 URGENT — 6 of 8 spec'd dashboard pages NOT BUILTFiled 2026-05-18 PM after AIN-153 audit revealed Aule shipped 2 pages with empty-state data and marked parent Done. Reverted to In Progress. This ticket consolidates the 6 missing dashboard pages from the canonical spec into a single epic-child for parallel execution. Canonical spec reference🎨 Marketing + Dashboard Design (Ampersend + Unicorn) §Part 2 Missing pages (build these in order)Phase 1 — Critical-path pages (no payment dependency)1.
|
| Path | Status |
|---|---|
/agents/<id>/wallet |
DEFER — payment lane per AIN-179 |
/wallet |
DEFER — payment lane per AIN-179 |
These ship after AIN-129 CDP signup + USDC settlement live.
Cross-cutting requirements
- Keyboard shortcuts implemented per spec (⌘K palette, j/k, g+a/t/w/r/i, Esc, ⌘/)
- Mobile read-only verified per D12 (edit buttons hidden ≤768px viewport)
- Brand v1.3 tokens (bg #070B14, ink #E8EDF5, accent #4D95E8, IBM Plex Sans 500 -0.022em)
- No layout shifts (skeletons render at correct size before data loads)
- Live counters smooth count-up animation (400ms)
- New activity rows fade-in (200ms) with subtle slide-down (-8px)
- Hover transitions 120ms
Acceptance gates (this epic-child)
- All 6 pages built per spec
- All page data wired (no empty-state placeholders)
- Browser smoke on prod app.ainfera.ai for each page
- Mobile smoke at 375px viewport (read-only verified)
- Keyboard shortcuts smoke (⌘K palette works)
- 6 Ainfera templates seeded via migration
- Aule author override on all commits per Discipline docs(adr): ADR-012/013/014 — AA integration roadmap #4
- PR opens off
feat/ain-182-dashboard-6-missing-pagesbranch - AIN-153 parent moves to Done after this ships
Connection
- Parent: AIN-153 (dashboard epic, reverted to In Progress)
- D7-D37 locks: Decision Locks
- Spec: Marketing + Dashboard Design §Part 2
- Universal Control Plane lock: framework-agnostic from D1, no
fleet_*tables
Founder authorization
Per "Hard revert to In Progress and force the missing work" (2026-05-18 session 3.5 PM).
|
You have used all Bugbot PR reviews included in your free trial for your GitHub account on this workspace. To continue using Bugbot reviews, enable Bugbot for your team in the Cursor dashboard. |
Backend half of AIN-182 §Phase 3 §7. New tenant_routing_policies table + GET/PUT endpoints.
Closes part of AIN-182 Phase 3. Pre-commit gates all green.