-
Notifications
You must be signed in to change notification settings - Fork 1.1k
docs(readme): one sponsor line pointing at SPONSORS.md #3923
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,41 @@ | ||
| # 260907 sponsor branches | ||
|
|
||
| Goal: two sponsor branches from `origin/dev` (`8bc9e4ee2`, which carries SPONSORS.md and the README | ||
| Sponsors section), each ending in an open PR against `dev`. Neither merges here. | ||
|
|
||
| ## Shared mechanism (010, applied identically on both branches) | ||
|
|
||
| - `ProviderRegistryEntry.sponsor?: { tier: "main" | "standard"; url: string }`. | ||
| - `DerivedProviderPreset.sponsor?: "main" | "standard"` via `entryToPreset`. | ||
| - `deriveProviderPresets()` keeps registry order; sorting is the picker's job. | ||
| - GUI catalog (`provider-presets.ts` + `ProviderCatalog.tsx`): sponsors first, alphabetical by label | ||
| among sponsors (Main before Standard), then the existing usage/label order. Sponsor rows get a | ||
| `Sponsor` chip (`badge-accent`) before the auth badge. i18n key `modal.badge.sponsor` in all | ||
|
Comment on lines
+11
to
+13
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win 🔎 Supported by static analysis🤖 get_repo_knowledge executed:
Length of output: 19576 🏁 Script executed: #!/bin/bash
set -eu
printf '%s\n' '--- plan ---'
sed -n '1,55p' devlog/_plan/260907_sponsor_branches/000_plan.md
printf '%s\n' '--- candidate files ---'
git ls-files | rg '(^|/)(provider-presets\.ts|ProviderCatalog\.tsx|derive\.(ts|tsx)|.*provider.*catalog.*|.*provider.*preset.*)$'
printf '%s\n' '--- comparator and sponsor references ---'
rg -n -C 4 'usage|sponsor|Sponsor|badge-accent|provider-presets|ProviderCatalog' gui/src 2>/dev/null | head -n 240Repository: lidge-jun/opencodex Length of output: 23475 🏁 Script executed: #!/bin/bash
set -eu
printf '%s\n' '--- provider-presets.ts ---'
cat -n gui/src/components/provider-catalog/provider-presets.ts
printf '%s\n' '--- ProviderCatalog.tsx outline ---'
ast-grep outline gui/src/components/provider-catalog/ProviderCatalog.tsx
printf '%s\n' '--- ProviderCatalog.tsx relevant source ---'
rg -n -C 12 'sort|usage|label|auth|chip|badge|preset|catalog' gui/src/components/provider-catalog/ProviderCatalog.tsx
printf '%s\n' '--- catalog tests ---'
cat -n gui/tests/provider-catalog-marks.test.tsx
printf '%s\n' '--- derivation ---'
cat -n src/providers/derive.ts
printf '%s\n' '--- related planning contract ---'
rg -n -C 8 'sponsor|ordering|usage/label|Main before|Standard|comparator' devlog/_fin/260901_provider_marks devlog/_fin/260806_provider_preset_stack devlog/_fin/250_provider-catalog-metadata devlog/_fin/130_provider-catalog-single-source 2>/dev/null | head -n 260Repository: lidge-jun/opencodex Length of output: 50375 🏁 Script executed: #!/bin/bash
set -eu
printf '%s\n' '--- entryToPreset and preset derivation ---'
rg -n -C 18 'function entryToPreset|const entryToPreset|entryToPreset\s*=|deriveProviderPresets' src/providers/derive.ts
printf '%s\n' '--- existing ordering tests and comparator references ---'
rg -n -C 8 'toSorted|usageRank|localeCompare|catalog ordering|provider-catalog|bucketPresets|filterPresets' gui tests src | head -n 240
printf '%s\n' '--- exact plan line numbers ---'
nl -ba devlog/_plan/260907_sponsor_branches/000_plan.md | sed -n '8,17p'Repository: lidge-jun/opencodex Length of output: 23196 Define the sponsor comparator before implementing both branches.
Specify a deterministic order, for example: sponsored rows first; 🤖 Prompt for AI Agents |
||
| nine locales. | ||
| - CLI `ocx provider presets` prints `(sponsor)` after the label for sponsor rows. | ||
| - Tests: derive test for the field, catalog ordering test for pinning + chip. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win Add CLI coverage to the verification plan. Line 15 changes the observable 🤖 Prompt for AI Agents |
||
|
|
||
| ## OrcaRouter (020) | ||
|
|
||
| - Registry: `sponsor: { tier: "standard", url: "https://www.orcarouter.ai/?utm_source=opencodex" }` | ||
| on the existing `orcarouter` entry. PKCE lands separately via #3908 (author akf66), untouched. | ||
|
Comment on lines
+20
to
+21
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win 🔎 Supported by static analysis🤖 get_repo_knowledge executed:
Length of output: 19598 🏁 Script executed: #!/bin/bash
set -e
printf '%s\n' '--- plan file ---'
sed -n '1,55p' devlog/_plan/260907_sponsor_branches/000_plan.md
printf '%s\n' '--- provider registry and derive references ---'
rg -n -C 4 'orcarouter|PKCE|sponsor|derive' src devlog/_plan/260907_sponsor_branches -g '*.ts' -g '*.tsx' -g '*.md' | head -240
printf '%s\n' '--- tracked files related to provider registry/catalog/tests ---'
git ls-files | rg 'ProviderCatalog|derive|provider|test|spec' | head -160Repository: lidge-jun/opencodex Length of output: 32479 🏁 Script executed: #!/bin/bash
set -e
if command -v gh >/dev/null 2>&1; then
gh api repos/lidge-j/opencodex/pulls/3908 --jq '{state,merged_at,head:.head.label,base:.base.label,title}'
gh api repos/lidge-j/opencodex/pulls/3908/files --paginate --jq '.[] | {filename,status,additions,deletions,patch}'
else
echo 'gh unavailable'
fiRepository: lidge-jun/opencodex Length of output: 302 🌐 Web query:
💡 Result: There is no pull request Citations:
🏁 Script executed: #!/bin/bash
set -e
printf '%s\n' '--- repository remotes and refs ---'
git remote -v
git branch -a --no-color | head -80
printf '%s\n' '--- exact OrcaRouter registry definition ---'
rg -n -C 12 'id:\s*"orcarouter"|name:\s*"orcarouter"|orcarouter' src/providers tests -g '*.ts' | head -160
printf '%s\n' '--- local references to PR 3908 and PKCE ---'
rg -n -i -C 3 '3908|orcarouter|pkce' --glob '!devlog/_plan/260907_sponsor_branches/000_plan.md' . | head -240Repository: lidge-jun/opencodex Length of output: 35206 🏁 Script executed: #!/bin/bash
set -e
if command -v gh >/dev/null 2>&1; then
printf '%s\n' '--- issue/PR lookup in the repository ---'
gh api repos/lidge-jun/opencodex/issues/3908 --jq '{number,title,state,html_url}' || true
gh search prs 'repo:lidge-jun/opencodex 3908' --json number,title,url,state,author --limit 20 || true
printf '%s\n' '--- repository PR list for the named author and terms ---'
gh search prs 'repo:lidge-jun/opencodex author:akf66' --json number,title,url,state --limit 50 || true
gh search prs 'repo:lidge-jun/opencodex PKCE' --json number,title,url,state --limit 50 || true
else
echo 'gh unavailable'
fiRepository: lidge-jun/opencodex Length of output: 1050 🏁 Script executed: #!/bin/bash
set -e
printf '%s\n' '--- relevant test files and scripts ---'
git ls-files tests gui/src | rg -i 'provider|catalog|derive|preset' | head -120
printf '%s\n' '--- test declarations mentioning provider derivation or catalog ordering ---'
rg -n -i -C 4 'deriveProviderPresets|entryToPreset|ProviderCatalog|sponsor|orcarouter' tests gui/src -g '*.{ts,tsx}' | head -240Repository: lidge-jun/opencodex Length of output: 26266 🏁 Script executed: #!/bin/bash
set -e
printf '%s\n' '--- registry file candidates ---'
git ls-files src/providers | sort
printf '%s\n' '--- provider registry OrcaRouter context ---'
for f in $(git ls-files src/providers | grep -E 'registry|derive'); do
if rg -q 'orcarouter' "$f"; then
echo "### $f"
rg -n -C 10 'orcarouter' "$f"
fi
doneRepository: lidge-jun/opencodex Length of output: 6074 🏁 Script executed: #!/bin/bash
set -e
printf '%s\n' '--- PR 3908 metadata ---'
gh api repos/lidge-jun/opencodex/pulls/3908 --jq '{number,title,state,merged,merged_at,merge_commit_sha,head:.head.sha,head_ref:.head.ref,base:.base.ref,author:.user.login}'
printf '%s\n' '--- PR 3908 changed files ---'
gh api repos/lidge-jun/opencodex/pulls/3908/files --paginate --jq '.[] | {filename,status,additions,deletions,patch}'
printf '%s\n' '--- PR 3908 commits ---'
gh api repos/lidge-jun/opencodex/pulls/3908/commits --paginate --jq '.[] | [.sha,.commit.message] | `@tsv`'Repository: lidge-jun/opencodex Length of output: 50378 🏁 Script executed: #!/bin/bash
set -e
printf '%s\n' '--- PR 3908 source and test files ---'
gh api repos/lidge-jun/opencodex/pulls/3908/files --paginate |
jq -r '.[] | select(.filename | test("(^src/|^tests/|^gui/src/|^gui/public/)")) | [.filename,.status,.additions,.deletions] | `@tsv`'
printf '%s\n' '--- PR 3908 registry/auth patches ---'
gh api repos/lidge-jun/opencodex/pulls/3908/files --paginate |
jq -r '.[] | select(.filename | test("registry|derive|orcarouter|oauth|provider.*catalog|catalog.*provider")) | "### \(.filename) [\(.status)]\n\(.patch // \"<binary or unavailable patch>\")"'Repository: lidge-jun/opencodex Length of output: 1771 🏁 Script executed: #!/bin/bash
set -e
printf '%s\n' '--- PR 3908 commit list ---'
gh api repos/lidge-jun/opencodex/pulls/3908/commits --paginate --jq '.[] | [.sha,.commit.message] | `@tsv`'
printf '%s\n' '--- PR 3908 registry-related filenames only ---'
gh api repos/lidge-jun/opencodex/pulls/3908/files --paginate --jq '.[] | select(.filename | test("src/providers/registry.ts|src/oauth/orcarouter|tests/providers/orcarouter")) | .filename'Repository: lidge-jun/opencodex Length of output: 690 🏁 Script executed: #!/bin/bash
set -e
gh api repos/lidge-jun/opencodex/pulls/3908/files --paginate --jq '
.[] |
select(.filename == "src/providers/registry.ts" or
.filename == "src/oauth/orcarouter.ts" or
.filename == "tests/providers/orcarouter-provider.test.ts") |
"\(.filename)\t\(.status)\t\(.additions)\t\(.deletions)\n\(.patch // "<binary or unavailable patch>")\n"
'Repository: lidge-jun/opencodex Length of output: 27051 🏁 Script executed: #!/bin/bash
set -e
printf '%s\n' '--- current commit and PR head relationship ---'
git show -s --format='%H%n%P%n%s' HEAD
printf '%s\n' '--- PR 3908 head commit details ---'
gh api repos/lidge-jun/opencodex/commits/9e90d8271e4b8dc9b229b478196270c0c4eae7bb --jq '{sha:.sha,parent:.parents[0].sha,message:.commit.message}'Repository: lidge-jun/opencodex Length of output: 577 Land PR 🤖 Prompt for AI Agents |
||
| - README: first Standard row, uncomment the table. Logo `assets/sponsors/orcarouter.png` (from | ||
| `gui/public/provider-icons/orcarouter.svg` rendered to PNG), blurb from the sponsor if delivered, | ||
| else a neutral maintainer-written 60-word blurb marked for replacement. | ||
| - docs-site providers guide: OrcaRouter paragraph in section 3. | ||
| - Screenshots: dashboard Providers tab picker with OrcaRouter pinned, README section render. | ||
|
|
||
| ## PackyCode (030) | ||
|
|
||
| - Registry: new `packycode` entry, `openai-chat`, baseUrl `https://cf.api.fan/v1` (from | ||
| docs.packyapi.com Codex/Kimi guides; `/v1/models` answers 401 without a key so the host is live), | ||
| `dashboardUrl https://www.packyapi.com/register?aff=k5KT`, sponsor standard. Model list from | ||
| the docs token groups: Codex group (gpt-5.5, gpt-5.1-codex), CC group (claude), seeded conservatively. | ||
|
Comment on lines
+30
to
+33
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift 🔎 Supported by static analysis🤖 get_repo_knowledge executed:
Length of output: 20543 🏁 Script executed: #!/bin/bash
set -eu
printf '%s\n' '--- plan ---'
cat -n devlog/_plan/260907_sponsor_branches/000_plan.md | sed -n '1,50p'
printf '%s\n' '--- related PackyCode and provider references ---'
rg -n -i -C 3 'packycode|cf\.api\.fan|openai-chat|/v1/models|sponsor' --glob '!devlog/_plan/260907_sponsor_branches/000_plan.md' .Repository: lidge-jun/opencodex Length of output: 50376 🏁 Script executed: #!/bin/bash
set -eu
log=/tmp/coderabbit-shell-logs/shell-output-70KUkJ
printf '%s\n' '--- plan excerpt ---'
sed -n '1,90p' "$log"
printf '%s\n' '--- direct repository matches only ---'
rg -n -i -C 4 'packycode|cf\.api\.fan|docs\.packyapi\.com|packyapi\.com' \
src tests devlog/_plan/260907_sponsor_branches \
--glob '!**/*.json' --glob '!**/*.patch' || true
printf '%s\n' '--- provider validation test names ---'
rg -n -i 'provider-live|registry-parity|liveModels|models endpoint|chat/completions|openai-chat' tests src/providers src/adapters \
--glob '*.ts' | head -n 240Repository: lidge-jun/opencodex Length of output: 42403 🏁 Script executed: #!/bin/bash
set -eu
cat -n devlog/_plan/260907_sponsor_branches/000_plan.md | sed -n '1,50p'
printf '%s\n' '--- exact PackyCode references ---'
rg -n -i -C 3 'packycode|cf\.api\.fan|docs\.packyapi\.com|packyapi\.com' src tests devlog/_plan/260907_sponsor_branches || trueRepository: lidge-jun/opencodex Length of output: 11601 🏁 Script executed: #!/bin/bash
set -eu
printf '%s\n' '--- PackyCode phase plan ---'
cat -n devlog/_plan/260907_sponsor_branches/030_phase3.md
printf '%s\n' '--- OpenAI Chat adapter contract ---'
sed -n '1,45p' src/adapters/openai-chat-url.ts
sed -n '1430,1485p' src/adapters/openai-chat.ts
sed -n '1590,1665p' src/adapters/openai-chat.ts
printf '%s\n' '--- registry fields and validation conventions ---'
sed -n '145,180p' src/providers/registry.ts
sed -n '620,710p' src/providers/registry.ts
sed -n '1890,1935p' src/providers/registry.ts
printf '%s\n' '--- focused registry tests ---'
fd -i 'provider*registry*' tests
rg -n -C 4 'models|liveModels|adapter|baseUrl|static|unverified' tests/providers/provider-registry-parity.test.ts tests/providers --glob '*.ts' | head -n 240Repository: lidge-jun/opencodex Length of output: 41391 Validate PackyCode compatibility before adding the registry entry. The planned 🤖 Prompt for AI Agents |
||
| - Icon: `gui/public/provider-icons/packycode.svg` from packyapi.com favicon. | ||
| - README: Standard row with the sponsor's EN blurb and the ZH blurb beneath. | ||
| - docs-site providers guide paragraph; screenshots as above. | ||
|
|
||
| ## Order | ||
|
|
||
| 010 on `sponsors/orcarouter`, cherry-picked to `sponsors/packycode`, then 020 and 030 in | ||
| parallel. Each branch: privacy:scan, typecheck, focused tests, push `--no-verify`, PR with template. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| # 010 shared sponsor mechanism | ||
|
|
||
| See 000_plan.md section Shared mechanism. Diff targets: src/types/provider.ts (registry entry type), src/providers/derive.ts, gui/src/components/provider-catalog/provider-presets.ts, ProviderCatalog.tsx, gui/src/i18n/*.ts, src/cli/provider-runtime.ts, tests. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| # 020 OrcaRouter branch | ||
|
|
||
| See 000_plan.md section OrcaRouter. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| # 030 PackyCode branch | ||
|
|
||
| See 000_plan.md section PackyCode. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick win
🔎 Supported by static analysis
🤖 get_repo_knowledge executed:
get_repo_knowledge lidge-jun/opencodex /tmp/coderabbit-repo-knowledge/lidge-jun-opencodex-7afea732/learnings /tmp/coderabbit-repo-knowledge/lidge-jun-opencodex-7afea732/conventionsLength of output: 17948
🏁 Script executed:
Repository: lidge-jun/opencodex
Length of output: 50378
🏁 Script executed:
Repository: lidge-jun/opencodex
Length of output: 6444
🏁 Script executed:
Repository: lidge-jun/opencodex
Length of output: 4000
Define whether
sponsor.urlcrossesentryToPreset.The plan declares
ProviderRegistryEntry.sponsoras{ tier, url }, butDerivedProviderPreset.sponsoras tier-only.src/providers/derive.ts:594-612is the conversion boundary. If consumers need the sponsor link, addurltoDerivedProviderPreset, copy it inentryToPreset, and test both fields. Otherwise, document thaturlis registry-only and test the intentional omission.🤖 Prompt for AI Agents