mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-03 13:52:09 +03:00
Deep codebase audit corrected stale counts and facts across the root and docs/ root documentation (verified against source, not from memory): - MCP tools 43/37/29/69 → 87 (TOTAL_MCP_TOOL_COUNT); MCP scopes ~13 → 30 - DB domain modules 45+/76 → 83; migrations 55/94 → 97 (latest 099) - Routing strategies 14 → 15 (added missing reset-window) - A2A skills 5 → 6; provider entries 229 → 232; open-sse services 111 → 115/184 - Node engine ≥20.20.2/22.22.2/24<25 → >=22.0.0 <23 || >=24.0.0 <27 - TypeScript 5.9 → 6.0; README footer v3.8.6 → v3.8.24 - Husky pre-push 'disabled' → active (check:any-budget:t11 + check:tracked-artifacts) - docs/README.md version 3.8.2 → 3.8.24; fixed duplicate '## architecture/' → '## reference/' - docs/AGENTROUTER.md wire image: claude-cli 2.1.137 → 2.1.158, +redact-thinking-2026-02-12 beta flag - docs/SUBMIT_PR.md: version-agnostic release-branch guidance, coverage gate 75/75/75/70 → 60/60/60/60 - AGENTS.md: removed broken open-sse/AGENTS.md link, restamped live-counts to v3.8.24 - README: documented plugin marketplace, Notion/Obsidian, embedded services; fixed broken skills/omniroute path + 10→43 skills; added CHANGELOG link; cleaned orphaned <details> tags check:docs-sync + check:docs-counts green. No new fabricated-docs/symbols drift introduced.
128 lines
3.2 KiB
Markdown
128 lines
3.2 KiB
Markdown
# Submitting a Pull Request
|
||
|
||
Step-by-step for contributors who already have a fork and a working fix.
|
||
|
||
---
|
||
|
||
## 1 — Set up your fork
|
||
|
||
```bash
|
||
# Clone your fork
|
||
git clone https://github.com/<your-username>/OmniRoute.git
|
||
cd OmniRoute
|
||
|
||
# Add the upstream repo so you can sync
|
||
git remote add upstream https://github.com/diegosouzapw/OmniRoute.git
|
||
|
||
# Install dependencies (.env is auto-created from .env.example)
|
||
npm install
|
||
```
|
||
|
||
---
|
||
|
||
## 2 — Sync with the current release branch
|
||
|
||
PRs go to the **current release branch** — `release/v3.8.24` at the time of writing. Always target the latest `release/v*` branch (the repository's active development branch), never `main`. Check the repo's branch list or `CONTRIBUTING.md` if a newer release cycle has opened.
|
||
|
||
```bash
|
||
git fetch upstream
|
||
git checkout -b fix/your-description upstream/release/v3.8.24
|
||
```
|
||
|
||
If you already made your changes on another branch, rebase on top of it:
|
||
|
||
```bash
|
||
git fetch upstream
|
||
git rebase upstream/release/v3.8.24
|
||
```
|
||
|
||
---
|
||
|
||
## 3 — Branch naming
|
||
|
||
| Prefix | Use for |
|
||
| ----------- | --------------------------------------- |
|
||
| `feat/` | new feature |
|
||
| `fix/` | bug fix |
|
||
| `refactor/` | code restructuring (no behavior change) |
|
||
| `docs/` | documentation only |
|
||
| `test/` | tests only |
|
||
| `chore/` | tooling, deps, CI |
|
||
|
||
Examples: `fix/codex-token-refresh`, `feat/provider-xyz`, `docs/update-readme`
|
||
|
||
---
|
||
|
||
## 4 — Validate before committing
|
||
|
||
```bash
|
||
npm run lint # must pass (0 errors)
|
||
npm run typecheck:core # must pass
|
||
npm run test:unit # must pass
|
||
npm run test:coverage # coverage gate: 60/60/60/60 (statements/lines/functions/branches)
|
||
```
|
||
|
||
If you changed production code in `src/`, `open-sse/`, `electron/`, or `bin/`, include or update tests in the same PR.
|
||
|
||
---
|
||
|
||
## 5 — Commit
|
||
|
||
Follow [Conventional Commits](https://www.conventionalcommits.org/):
|
||
|
||
```
|
||
feat(dashboard): add provider search filter
|
||
fix(combo): resolve pending request leak on timeout
|
||
docs(readme): update installation steps
|
||
test(auth): add JWT expiry edge case
|
||
```
|
||
|
||
Common scopes: `api`, `dashboard`, `db`, `sse`, `oauth`, `providers`, `combo`, `mcp`, `cli`, `i18n`
|
||
|
||
---
|
||
|
||
## 6 — Push and open the PR
|
||
|
||
```bash
|
||
git push -u origin fix/your-description
|
||
```
|
||
|
||
Then open a PR on GitHub targeting **`diegosouzapw/OmniRoute`** → **`release/v3.8.24`**.
|
||
|
||
PR description checklist:
|
||
|
||
- [ ] What the change does (1–3 bullets)
|
||
- [ ] How to test it
|
||
- [ ] Test files added or updated (if production code changed)
|
||
|
||
---
|
||
|
||
## 7 — After opening the PR
|
||
|
||
- CI runs lint + typecheck + tests automatically.
|
||
- Address review comments with new commits (do not force-push after review starts).
|
||
- If the base branch advances, sync with:
|
||
|
||
```bash
|
||
git fetch upstream
|
||
git rebase upstream/release/v3.8.24
|
||
git push --force-with-lease
|
||
```
|
||
|
||
---
|
||
|
||
## Quick reference
|
||
|
||
```bash
|
||
# Full validation in one command
|
||
npm run lint && npm run typecheck:core && npm run test:coverage
|
||
|
||
# Run a single test file
|
||
node --import tsx/esm --test tests/unit/your-file.test.ts
|
||
|
||
# Start dev server
|
||
npm run dev # http://localhost:20128
|
||
```
|
||
|
||
For the full contributor guide see [CONTRIBUTING.md](../CONTRIBUTING.md).
|