feat(step10): upstream tracking + canonical routing ADR - #9
Conversation
- Add upstream remote: diegosouzapw/OmniRoute (latest: v3.8.8) - Create UPSTREAM_SYNC.md: protocol for tracking + cherry-picking upstream fixes - Create docs/ADR-001-canonical-routing.md: decision to make OmniRoute the canonical routing project, rebuilt around bifrost + cliproxy Cluster convergence plan: phenoAI/phenoRouterMonitor/Tokn/helios-router are archive candidates pending migration into OmniRoute workspace. Source repos remain intact. Completes STEP 10 of phenotype-registry RATIONALIZATION_PLAN.md.
|
CodeAnt AI is reviewing your PR. Thanks for using CodeAnt! 🎉We're free for open-source projects. if you're enjoying it, help us grow by sharing. Share on X · |
|
Warning Review limit reached
More reviews will be available in 37 minutes and 11 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (2)
✨ Finishing Touches🧪 Generate unit tests (beta)
✨ Simplify code
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request introduces documentation establishing OmniRoute as the canonical routing project for the Phenotype org. It adds an upstream synchronization guide (UPSTREAM_SYNC.md) and an Architecture Decision Record (ADR-001-canonical-routing.md) detailing the project's convergence plan and architecture. The feedback recommends moving UPSTREAM_SYNC.md to the docs/ directory to comply with the repository's file placement rules, and relocating the ADR to docs/adr/ to align with the project's standard documentation structure.
| @@ -0,0 +1,52 @@ | |||
| # Upstream Sync Guide — OmniRoute | |||
There was a problem hiding this comment.
The file UPSTREAM_SYNC.md is placed in the project root, which violates the Repository Style Guide (Section 1, File Placement & Organization). The style guide strictly limits the allowed files in the project root, and UPSTREAM_SYNC.md is not among the permitted documentation files. Please move this file to the docs/ directory.
References
- The Project Root MUST ONLY CONTAIN specific configuration, dependency, CI/CD, and listed documentation files. Loose documentation files not in the list should not be placed in the root. (link)
| @@ -0,0 +1,84 @@ | |||
| # ADR-001: OmniRoute as Canonical Routing Project | |||
There was a problem hiding this comment.
|
|
CodeAnt AI finished reviewing your PR. |
Temporarily relaxes the c8 thresholds and Hard Rule #9 from 75/75/75/70 to 40/40/40/40 across statements/lines/functions/branches so the v3.8.6 page-redesign branches (translator, playground, search-tools, batch, memory, monitoring) can merge before reaching their final test coverage targets. Update upward as the new pages mature.
…, wizard strings, sr-only urgency
3 polish items from R4 acceptance audit (operator-approved scope):
- P1: BatchListTab status filter dropdown now renders translated labels (t("batchStatusInProgress") etc.) instead of raw snake_case ("in_progress", "cancelling"). STATUS_LABELS refactored to STATUS_LABEL_KEYS — a single map from raw/composite status → i18n key — so StatusBadge and the dropdown share one source of truth. Falls back to snake→space transform for unknown statuses.
- P2: 18 hardcoded English strings replaced by t() calls.
BatchListTab: title ("Batches"), count "{count} batches" (ICU placeholder), Removing…/Remove completed, 6 table headers (Status/ID/Endpoint/Model/Progress/Created/Expires), Loading…, No batches found, Validating… progress cell.
CostEstimateStep: Estimating cost…, Requests, input tok, output tok, Window.
DestinationStep: Select a provider…, Select a model…, Connect a provider.
- P3: ExpirationBadge — added <span class="sr-only">{label}:</span> in both compact and default variants so colorblind users and screen-readers get the urgency tier (Critical/Soon/Pending) instead of color-only signaling. The visual is unchanged (compact still shows just the time string).
Tests: list-regression #2 + #3 updated to look for the i18n key literal "batchListRemoveCompleted" (mock t() returns keys) instead of the now-translated "Remove completed" string. All 20 list-regression tests pass.
35 new i18n keys (14 status labels — 9 raw + 5 _with_failures composites — + 14 BatchListTab + 4 CostEstimateStep + 3 DestinationStep) added in en.json + pt-BR.json and propagated to 40 locales via fill-missing-from-en.mjs.
Note on R4 finding C1 (auditor claimed Hard Rule #9 violation from the 75→40 coverage gate drop): false positive. The audit compared CLAUDE.md in the worktree (branch refactor/pages-v3-20-... reflecting the new gate of 40, since operator explicitly requested it: "pode baixar os testes para 40/40/40") against CLAUDE.md in the repo root (branch release/v3.8.6, still at 75 because the PR has not landed yet). Same file, different branches — expected intermediate state for an active PR. Actual measured coverage remains ~77% (well above the 40 gate), so the gate change is a sanctioned threshold relaxation, not a masking workaround.
test:coverage now enforces 60/60/60/60 (statements/lines/functions/branches); real coverage is ~75-82% so this tightens the floor without new test work. Updates the c8 --check-coverage thresholds in package.json and the matching references in CLAUDE.md (Quick Start, testing table, Copilot policy, Hard Rule #9). Salvaged from the never-pushed chore/skills-governance-tdd-vps branch; the i18n CLAUDE.md mirrors carry a separate pre-existing drift and are not gated by check-docs-sync.
…b_fetch tool (diegosouzapw#4523) tools.ts 1437->1497, server.ts 1509->1555 from diegosouzapw#4510. Justification per Rule #9.



User description
Adds upstream remote (diegosouzapw/OmniRoute v3.8.8), UPSTREAM_SYNC.md tracking protocol, and docs/ADR-001-canonical-routing.md. OmniRoute is the canonical Phenotype routing project rebuilt on bifrost+cliproxy. LLM cluster (phenoAI/phenoRouterMonitor/Tokn/helios-router) converges here. Completes STEP 10 of rationalization plan.
Note
Low Risk
Markdown-only governance docs; no application code, auth, or deployment behavior changes.
Overview
Adds documentation only to formalize how this fork relates to
diegosouzapw/OmniRouteand how Phenotype org routing will consolidate.UPSTREAM_SYNC.mddocuments theupstreamremote, fetch/compare/cherry-pick workflow, and an explicit rule not to rebase ontoupstream/mainbecause the routing core diverges at bifrost. It lists what to backport (API-layer fixes, provider schemas, docs, security) vs what to skip (upstream routing, load balancing, retry/fallback), and tracks release tags through v3.8.8.docs/ADR-001-canonical-routing.mdaccepts OmniRoute as the canonical Phenotype routing project: hard fork with OpenAI-compatible API preserved while bifrost + cliproxy replace routing/LB/provider selection. It outlines a cluster convergence table (phenoAI, phenoRouterMonitor, Tokn, helios-router → OmniRoute paths) as follow-on migrations without archiving source repos yet, plus a target repo layout undercrates/andmonitoring/.Together these complete STEP 10 of the rationalization plan; no runtime or config changes in this diff.
Reviewed by Cursor Bugbot for commit 40a4012. Bugbot is set up for automated code reviews on this repo. Configure here.
CodeAnt-AI Description
Document the upstream sync process and make OmniRoute the canonical routing project
What Changed
diegosouzapw/OmniRouteImpact
✅ Clearer upstream maintenance✅ Fewer routing-source conflicts✅ Easier project consolidation💡 Usage Guide
Checking Your Pull Request
Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.
Talking to CodeAnt AI
Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:
This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.
Example
Preserve Org Learnings with CodeAnt
You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:
This helps CodeAnt AI learn and adapt to your team's coding style and standards.
Example
Retrigger review
Ask CodeAnt AI to review the PR again, by typing:
Check Your Repository Health
To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.