Skip to content
Closed
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
300 commits
Select commit Hold shift + click to select a range
04e8c6a
merge: workstream-cpb-5
KooshaPari Feb 22, 2026
fbb47a0
merge: workstream-cpb-6
KooshaPari Feb 22, 2026
bc90fce
merge: workstream-cpb-7
KooshaPari Feb 22, 2026
06618f8
feat(tui): add Farsi locale parity with Mandarin/English
KooshaPari Feb 22, 2026
bc0369d
feat(tui): add Farsi locale parity with Mandarin/English
KooshaPari Feb 22, 2026
d1d83ce
feat(tui): add Farsi locale parity with Mandarin/English
KooshaPari Feb 22, 2026
dd122e0
feat(tui): add Farsi locale parity with Mandarin/English
KooshaPari Feb 22, 2026
322381d
feat(amp): add kiro-compatible amp auth flow and tests (#232)
KooshaPari Feb 22, 2026
9b25e95
fix(gemini): sanitize nullable tool schema types in responses transla…
KooshaPari Feb 22, 2026
24cef45
Merge branch 'workstream-cpb-1'
KooshaPari Feb 22, 2026
e019ee0
Merge branch 'workstream-cpb-2'
KooshaPari Feb 22, 2026
9dacfcd
Merge branch 'workstream-cpb-3'
KooshaPari Feb 22, 2026
7485103
Merge branch 'workstream-cpb-4'
KooshaPari Feb 22, 2026
e1aa44d
Merge branch 'workstream-cpb-5'
KooshaPari Feb 22, 2026
e3c7419
Merge branch 'workstream-cpb-6'
KooshaPari Feb 22, 2026
8be28b1
feat(tui): add Farsi locale parity with Mandarin/English
KooshaPari Feb 22, 2026
27d78a7
feat(tui): add Farsi locale parity with Mandarin/English
KooshaPari Feb 22, 2026
9559f14
Merge branch 'workstream-cpb-7'
KooshaPari Feb 22, 2026
306bc80
test(auth/kiro): avoid roundTripper helper redeclaration
KooshaPari Feb 22, 2026
1495084
feat(tui): add Farsi locale parity with Mandarin/English
KooshaPari Feb 22, 2026
fad61c3
docs(planning): add GH-35 integration summary
KooshaPari Feb 22, 2026
068d40f
docs: stage CPB-0001..0035 lane manifest and lane-1 execution
KooshaPari Feb 22, 2026
3c91336
chore(main): checkpoint current local state before integration merge
KooshaPari Feb 22, 2026
3bedab3
merge: wave-gh35-integration
KooshaPari Feb 22, 2026
f1d8262
chore(backup): checkpoint local WIP before worktree split
KooshaPari Feb 22, 2026
f68f151
fix(docs): resolve dead link to agents page in planning docs
KooshaPari Feb 22, 2026
2493d07
docs(validation): audit open upstream items against implemented state
KooshaPari Feb 22, 2026
648e849
fix(docs): resolve dead link to agents page in planning docs
KooshaPari Feb 22, 2026
cddcbeb
docs(validation): audit open upstream items against implemented state
KooshaPari Feb 22, 2026
027d6a8
wave(v2-l1): cpb-0036..0045 triage + docs quick wins
KooshaPari Feb 22, 2026
95c55d3
wave(v2-l2): cpb-0046..0055 triage + openai compat endpoint
KooshaPari Feb 22, 2026
59297e9
wave(v2-l3): cpb-0056..0065 triage + kiro/config hardening
KooshaPari Feb 22, 2026
d58eb82
wave(v2-l4): cpb-0066..0075 triage + docs/test quick wins
KooshaPari Feb 22, 2026
14d95b6
wave(v2-l5): cpb-0076..0085 triage + compact/translator coverage
KooshaPari Feb 22, 2026
6d4a8a8
wave(v2-l6): cpb-0086..0095 triage + log/codex hardening
KooshaPari Feb 22, 2026
276134d
wave(v2-l7): cpb-0096..0105 triage + docs/runtime checks
KooshaPari Feb 22, 2026
624bbe4
chore(main): checkpoint wave-v2 working state before branch merges
KooshaPari Feb 22, 2026
2e5c7ae
merge: workstream-cpbv2-1
KooshaPari Feb 22, 2026
e656f53
merge: workstream-cpbv2-2
KooshaPari Feb 22, 2026
9d79248
merge: workstream-cpbv2-3
KooshaPari Feb 22, 2026
85686ca
fix(merge): remove conflict markers from cpbv2-3 docs
KooshaPari Feb 22, 2026
13cdb7c
merge: workstream-cpbv2-4
KooshaPari Feb 22, 2026
253b06c
merge: workstream-cpbv2-5
KooshaPari Feb 22, 2026
46d7f33
merge: workstream-cpbv2-6
KooshaPari Feb 22, 2026
394a4a8
merge: workstream-cpbv2-7
KooshaPari Feb 22, 2026
4892d8d
docs(troubleshooting): normalize API key placeholder examples
KooshaPari Feb 22, 2026
f227350
chore(main): checkpoint pre-wave-v3 state
KooshaPari Feb 22, 2026
b1bf58a
docs(validation): add fork-main open item status audit
KooshaPari Feb 22, 2026
c0e6da8
docs(planning): define 21-item issue wave in 7x3 lanes
KooshaPari Feb 22, 2026
a501208
wave(v3-l2): cpb-0116..0125 triage + iflow compatibility
KooshaPari Feb 22, 2026
5a3a844
wave(v3-l1): cpb-0106..0115 triage + docs quick wins
KooshaPari Feb 22, 2026
9ef2290
wave(v3-l3): cpb-0126..0135 triage + thinking diagnostics
KooshaPari Feb 22, 2026
4cbb32a
wave(v3-l4): cpb-0136..0145 triage + kimi/iflow hardening
KooshaPari Feb 22, 2026
7315177
wave(v3-l5): cpb-0146..0155 triage + output_config fallback
KooshaPari Feb 22, 2026
2f1f892
wave(v3-l6): cpb-0156..0165 triage + gemini/vertex tests
KooshaPari Feb 22, 2026
9bdb8a0
wave(v3-l7): cpb-0166..0175 triage + quota/rate guards
KooshaPari Feb 22, 2026
fdce486
merge: workstream-cpbv3-1
KooshaPari Feb 22, 2026
3aad543
merge: workstream-cpbv3-2
KooshaPari Feb 22, 2026
c610ffc
merge: workstream-cpbv3-3
KooshaPari Feb 22, 2026
64b6289
merge: workstream-cpbv3-4
KooshaPari Feb 22, 2026
ad63e6f
merge: workstream-cpbv3-5
KooshaPari Feb 22, 2026
3e9d5d6
merge: workstream-cpbv3-6
KooshaPari Feb 22, 2026
47e73fb
merge: workstream-cpbv3-7
KooshaPari Feb 22, 2026
1a1782c
docs(planning): add seeded wave for CPB-0176..0245
KooshaPari Feb 22, 2026
369546d
docs(report): lane 1 status for #259 #253 #251
KooshaPari Feb 22, 2026
2e092b7
docs(planning): add gh-next21 lane-2 oauth/auth status report
KooshaPari Feb 22, 2026
7debd48
merge: workstream-cpb-4
KooshaPari Feb 22, 2026
d380774
merge: workstream-cpb-5
KooshaPari Feb 22, 2026
0fa3bb9
merge: workstream-cpb-6
KooshaPari Feb 22, 2026
be04e23
merge: workstream-cpb-7
KooshaPari Feb 22, 2026
f751d7d
merge: backup/wip-20260222-052246
KooshaPari Feb 22, 2026
00d4d22
merge: worktree/validate-done-prs
KooshaPari Feb 22, 2026
8bdb7d0
merge: worktree/docs-deadlink-fix
KooshaPari Feb 22, 2026
1adf3f8
test(lane-3): add cursor synthesis and amp v1 model regressions
KooshaPari Feb 22, 2026
2482c60
docs(lane-3): add kiro quota ops guidance and lane report
KooshaPari Feb 22, 2026
5a1a2eb
test(translator): add lane6 regressions and report
KooshaPari Feb 22, 2026
95d539e
lane-4: expand amp provider model listings for kimi/kilo
KooshaPari Feb 22, 2026
78fb893
lane-4: record commit evidence in report
KooshaPari Feb 22, 2026
e0000a9
wave(lane-7): close low-risk gaps for #254 #221 #200
KooshaPari Feb 22, 2026
9630ace
lane5: add oauth-upstream overrides and finalize gh-next21 report
KooshaPari Feb 22, 2026
d578da6
docs(report): lane 1 status for #259 #253 #251
KooshaPari Feb 22, 2026
e6780fa
docs(planning): add gh-next21 lane-2 oauth/auth status report
KooshaPari Feb 22, 2026
042b379
test(lane-3): add cursor synthesis and amp v1 model regressions
KooshaPari Feb 22, 2026
b1d2cb6
docs(lane-3): add kiro quota ops guidance and lane report
KooshaPari Feb 22, 2026
e31a420
lane-4: expand amp provider model listings for kimi/kilo
KooshaPari Feb 22, 2026
2c99303
lane-4: record commit evidence in report
KooshaPari Feb 22, 2026
9f5687a
lane5: add oauth-upstream overrides and finalize gh-next21 report
KooshaPari Feb 22, 2026
e8fbbb7
test(translator): add lane6 regressions and report
KooshaPari Feb 22, 2026
9799ee9
wave(lane-7): close low-risk gaps for #254 #221 #200
KooshaPari Feb 22, 2026
eb78145
chore: consolidate branches and queue next 35 CPB issues
KooshaPari Feb 22, 2026
4b1f5b5
feat: add thegent login and config validation
KooshaPari Feb 22, 2026
7e40311
feat(codex): normalize tool schemas for array union types (#259)
KooshaPari Feb 22, 2026
a5442bd
chore: start next 35 CPB issue items
KooshaPari Feb 22, 2026
ff426dd
chore: queue next 35 CPB issues in planning lane wave
KooshaPari Feb 22, 2026
1facec8
feat: implement fixes for 30 upstream issues
KooshaPari Feb 22, 2026
54f8b31
fix(gemini): sanitize function names to meet Gemini API requirements
KooshaPari Feb 22, 2026
57a7115
Add provider smoke matrix shell test harness and quality wiring
KooshaPari Feb 22, 2026
08a5705
docs: add CPB 0281-0315 planning wave artifacts
KooshaPari Feb 22, 2026
f04583b
fix(translator): ensure message_start before content blocks
KooshaPari Feb 22, 2026
7f9a7f1
docs: add CPB 0316..0350 planning wave artifacts
KooshaPari Feb 22, 2026
fb104bd
docs: add CPB 0351..0385 planning wave artifacts
KooshaPari Feb 22, 2026
5ab2135
docs: add CPB 0386..0420 planning wave artifacts
KooshaPari Feb 22, 2026
961e847
lane5: add oauth-upstream overrides and finalize gh-next21 report
KooshaPari Feb 22, 2026
9c29ca1
wave(lane-7): close low-risk gaps for #254 #221 #200
KooshaPari Feb 22, 2026
36ef7de
test(translator): add lane6 regressions and report
KooshaPari Feb 22, 2026
f1e7c5c
lane-4: expand amp provider model listings for kimi/kilo
KooshaPari Feb 22, 2026
c33a86a
lane-4: record commit evidence in report
KooshaPari Feb 22, 2026
6d94967
docs(report): lane 1 status for #259 #253 #251
KooshaPari Feb 22, 2026
c422c02
docs(planning): add gh-next21 lane-2 oauth/auth status report
KooshaPari Feb 22, 2026
869c56e
docs(lane-3): add kiro quota ops guidance and lane report
KooshaPari Feb 22, 2026
0225558
test(lane-3): add cursor synthesis and amp v1 model regressions
KooshaPari Feb 22, 2026
0fd841d
docs: add CPB 0421..0455 planning wave artifacts
KooshaPari Feb 22, 2026
5fc1ea5
docs: add CPB 0456..0490 planning wave and smoke defaults
KooshaPari Feb 22, 2026
c270d66
Merge remote-tracking branch 'upstream/main'
KooshaPari Feb 22, 2026
1480277
chore: merge upstream release tag compatibility
KooshaPari Feb 22, 2026
184f43d
chore: merge upstream config path diagnostics
KooshaPari Feb 22, 2026
c4e2ce7
docs: align README platform feature matrix
KooshaPari Feb 22, 2026
70b5514
feat(cursor): add cursor login onboarding flow and setup wire-up
KooshaPari Feb 22, 2026
e477098
chore(backup): checkpoint issue-wave and release smoke work
KooshaPari Feb 22, 2026
83e3fba
Fix models endpoint precedence and qwen incognito login mode
KooshaPari Feb 22, 2026
408edf5
feat: implement 5 major upstream features
KooshaPari Feb 22, 2026
4f87dac
chore(backup): snapshot docs and release-batch workflow
KooshaPari Feb 22, 2026
31f085e
test(lane-3): add cursor synthesis and amp v1 model regressions
KooshaPari Feb 22, 2026
225a6a6
feat(codex): normalize tool schemas for array union types (#259)
KooshaPari Feb 22, 2026
e184f3c
Merge branch 'wave-gh-next21-merge' into backup/bug-wave-issue-101-102
KooshaPari Feb 22, 2026
f6a5481
Merge branch 'wave-gh-next21-lane-1' into backup/bug-wave-issue-101-102
KooshaPari Feb 22, 2026
7afa33b
Merge branch 'wave-gh-next21-lane-2' into backup/bug-wave-issue-101-102
KooshaPari Feb 22, 2026
16fe699
Merge branch 'wave-gh-next21-lane-3' into backup/bug-wave-issue-101-102
KooshaPari Feb 22, 2026
8bb109e
Merge wave-gh-next21-lane-4
KooshaPari Feb 22, 2026
3dd58db
Merge wave-gh-next21-lane-5
KooshaPari Feb 22, 2026
d2e9f14
Merge wave-gh-next21-lane-6
KooshaPari Feb 22, 2026
c9e3e71
Merge wave-gh-next21-lane-7
KooshaPari Feb 22, 2026
be0899d
chore: require cheapest smoke checks in CI gates
KooshaPari Feb 22, 2026
ff087a5
test: cover variant codex high mapping in thinking E2E matrix
KooshaPari Feb 22, 2026
7b200a7
docs: document task quality:quick:fix command
KooshaPari Feb 23, 2026
6924aac
fix: normalize request header logging redaction
KooshaPari Feb 23, 2026
40562e7
feat(amp): add kiro-compatible amp auth flow and tests (#232)
KooshaPari Feb 22, 2026
b274e63
test(amp): align dedicated provider model tests with available registry
KooshaPari Feb 23, 2026
5e81023
chore(backup): checkpoint issue-wave cpb-0106 WIP docs and codex test…
KooshaPari Feb 23, 2026
a255918
fix(codex): strip context_management and truncation from Responses API
KooshaPari Feb 23, 2026
ff1056f
fix(lint): resolve multiple linting issues in internal packages
KooshaPari Feb 16, 2026
ff95a4e
feat: comprehensive test coverage and fixes for CLIProxyAPI Plus
KooshaPari Feb 19, 2026
53b3c1d
refactor(config): registry-based premade provider injection
KooshaPari Feb 19, 2026
3f730dc
refactor(config): switch to data-driven codegen for dedicated provide…
KooshaPari Feb 20, 2026
7a860be
chore: rename repository to cliproxyapi-plusplus
KooshaPari Feb 20, 2026
2f2d8ba
refactor(pkg): update internal config imports to pkg/llmproxy/config
KooshaPari Feb 20, 2026
f013d44
refactor: update imports to point to pkg/llmproxy
KooshaPari Feb 20, 2026
e1be261
refactor: global import updates to pkg/llmproxy
KooshaPari Feb 20, 2026
d3aa154
chore: rebranding to cliproxyapi++ (throwback to notepad++)
KooshaPari Feb 20, 2026
34295d3
docs: deep-dive optimization of READMEs and final branding updates
KooshaPari Feb 20, 2026
7e04484
docs: add ++ feature reference, docsets, and pages workflow
KooshaPari Feb 20, 2026
a13313d
ci: enable github pages setup in vitepress workflow
KooshaPari Feb 20, 2026
ee10834
tmp
KooshaPari Feb 20, 2026
8413526
tmp
KooshaPari Feb 21, 2026
1e8cd7e
docs: expand provider-first docs and README
KooshaPari Feb 21, 2026
ad0ba5d
wip: snapshot local CLIProxyAPIPlus working state
KooshaPari Feb 22, 2026
4bc4cff
chore: snapshot current local working state
KooshaPari Feb 22, 2026
3d91eea
chore: checkpoint current worktree before 7-lane bug wave
KooshaPari Feb 22, 2026
25349ec
chore: preserve current cliproxy work state
KooshaPari Feb 22, 2026
e133e15
chore: remove generated fragmented docs and logs
KooshaPari Feb 22, 2026
66b614f
feat: preserve ongoing cliproxy work
KooshaPari Feb 22, 2026
f045937
chore: checkpoint tui edits before branch consolidation
KooshaPari Feb 22, 2026
26ebe16
chore: checkpoint pending tracked edits before main consolidation
KooshaPari Feb 22, 2026
db9eefa
docs: assign issue lanes for first 30 CPB items
KooshaPari Feb 22, 2026
cb1283e
fix(responses): prevent JSON tree corruption from literal control cha…
garetneda-gif Feb 21, 2026
f988258
Merge remote-tracking branch 'upstream/main' into backup/bug-wave-iss…
KooshaPari Feb 23, 2026
b7793ea
fix: resolve build/test failures and improve CI
KooshaPari Feb 22, 2026
044be68
chore: align cli proxy main and stage issue wave lanes
KooshaPari Feb 22, 2026
966989a
test(api): relax claude-cli smoke assertion for /v1/models
KooshaPari Feb 22, 2026
d9ef4db
feat(tui): add fa locale support and parity tests
KooshaPari Feb 22, 2026
94fd2a6
fix(codex): support variant fallback for reasoning effort
KooshaPari Feb 22, 2026
06c39f5
fix(codex): map responses variant to reasoning effort
KooshaPari Feb 22, 2026
5810cfa
fix(codex): parse variant as codex thinking fallback
KooshaPari Feb 22, 2026
f79eafb
fix(kiro): accept Bash cmd alias to prevent amp truncation loops (#210)
KooshaPari Feb 22, 2026
fa7370d
wave(lane1): codex variant fallback + lane report
KooshaPari Feb 22, 2026
7b1d7cd
fix(registry): normalize github-copilot context windows to 128k (#241)
KooshaPari Feb 22, 2026
8595076
feat(amp): add kiro-compatible amp auth flow and tests (#232)
KooshaPari Feb 22, 2026
ea74fbf
fix(gemini): sanitize nullable tool schema types in responses transla…
KooshaPari Feb 22, 2026
9a00a6e
wave(lane2): copilot/kiro alias fixes + lane report
KooshaPari Feb 22, 2026
bd81b1d
wave(lane3): nullable schema + mgmt/fs fixes + lane report
KooshaPari Feb 22, 2026
91453e4
wave(lane4): kiro token fallback + amp model route + lane report
KooshaPari Feb 22, 2026
73d3309
wave(lane5): dedupe kiro tool_calls + lane report
KooshaPari Feb 22, 2026
d33fb23
docs: stage CPB-0001..0035 lane manifest and lane-1 execution
KooshaPari Feb 22, 2026
7183215
chore(main): checkpoint current local state before integration merge
KooshaPari Feb 22, 2026
09f7756
test(auth/kiro): avoid roundTripper helper redeclaration
KooshaPari Feb 22, 2026
753c41f
docs(planning): add GH-35 integration summary
KooshaPari Feb 22, 2026
fe0a049
fix(docs): resolve dead link to agents page in planning docs
KooshaPari Feb 22, 2026
c095165
docs(validation): audit open upstream items against implemented state
KooshaPari Feb 22, 2026
cf7343f
chore(main): checkpoint wave-v2 working state before branch merges
KooshaPari Feb 22, 2026
a1415f3
wave(v2-l1): cpb-0036..0045 triage + docs quick wins
KooshaPari Feb 22, 2026
03d7cad
wave(v2-l2): cpb-0046..0055 triage + openai compat endpoint
KooshaPari Feb 22, 2026
526285a
wave(v2-l3): cpb-0056..0065 triage + kiro/config hardening
KooshaPari Feb 22, 2026
81c2566
wave(v2-l4): cpb-0066..0075 triage + docs/test quick wins
KooshaPari Feb 22, 2026
3fa1124
wave(v2-l5): cpb-0076..0085 triage + compact/translator coverage
KooshaPari Feb 22, 2026
d2989f3
wave(v2-l6): cpb-0086..0095 triage + log/codex hardening
KooshaPari Feb 22, 2026
003663e
wave(v2-l7): cpb-0096..0105 triage + docs/runtime checks
KooshaPari Feb 22, 2026
63e1f9c
docs(troubleshooting): normalize API key placeholder examples
KooshaPari Feb 22, 2026
95a8800
chore(main): checkpoint pre-wave-v3 state
KooshaPari Feb 22, 2026
9ccc11c
docs(validation): add fork-main open item status audit
KooshaPari Feb 22, 2026
59eee53
docs(planning): define 21-item issue wave in 7x3 lanes
KooshaPari Feb 22, 2026
4f8e896
docs(report): lane 1 status for #259 #253 #251
KooshaPari Feb 22, 2026
1401fbb
docs(planning): add gh-next21 lane-2 oauth/auth status report
KooshaPari Feb 22, 2026
1977a8d
test(lane-3): add cursor synthesis and amp v1 model regressions
KooshaPari Feb 22, 2026
00a1caf
docs(lane-3): add kiro quota ops guidance and lane report
KooshaPari Feb 22, 2026
74570e3
lane-4: expand amp provider model listings for kimi/kilo
KooshaPari Feb 22, 2026
a08603f
lane-4: record commit evidence in report
KooshaPari Feb 22, 2026
eee2be9
lane5: add oauth-upstream overrides and finalize gh-next21 report
KooshaPari Feb 22, 2026
12440ee
test(translator): add lane6 regressions and report
KooshaPari Feb 22, 2026
4410d0a
wave(lane-7): close low-risk gaps for #254 #221 #200
KooshaPari Feb 22, 2026
0c88b90
feat(codex): normalize tool schemas for array union types (#259)
KooshaPari Feb 22, 2026
77b14e7
feat: implement fixes for 30 upstream issues
KooshaPari Feb 22, 2026
51b332a
Add provider smoke matrix shell test harness and quality wiring
KooshaPari Feb 22, 2026
d54c5fd
feat: implement 5 major upstream features
KooshaPari Feb 22, 2026
09556e3
feat(executor): normalize openai usage token fields and add qwen3.5 a…
KooshaPari Feb 23, 2026
84b6989
chore: merge chore/ff-sync-main into integrated worktree
KooshaPari Feb 23, 2026
5892d82
wave(v3-l2): cpb-0116..0125 triage + iflow compatibility
KooshaPari Feb 22, 2026
c0934ae
wave(v3-l3): cpb-0126..0135 triage + thinking diagnostics
KooshaPari Feb 22, 2026
d30b3d9
fix(copilot): emit function_call arg delta on done events
KooshaPari Feb 23, 2026
4255dd9
fix(translator): handle response.function_call_arguments.done in copi…
KooshaPari Feb 23, 2026
a76daf9
wave(v3-l4): cpb-0136..0145 triage + kimi/iflow hardening
KooshaPari Feb 22, 2026
4c802d7
wave(v3-l5): cpb-0146..0155 triage + output_config fallback
KooshaPari Feb 22, 2026
5e1de31
chore(backup): checkpoint provider smoke matrix and docs merge resolu…
KooshaPari Feb 22, 2026
ea68cd9
wave(v2-l1): cpb-0036..0045 triage + docs quick wins
KooshaPari Feb 22, 2026
593c3eb
chore: sync dev-local delta into canonical branch
KooshaPari Feb 23, 2026
938f3d0
Merge branch 'cpb-0036-0047-next'
KooshaPari Feb 23, 2026
f42b67c
Merge branch 'wave-gh-next21-lane-1'
KooshaPari Feb 23, 2026
557bb60
Merge branch 'wave-gh-next21-lane-2'
KooshaPari Feb 23, 2026
d40414f
Merge branch 'wave-gh-next21-lane-3'
KooshaPari Feb 23, 2026
238a81f
Merge branch 'wave-gh-next21-lane-5'
KooshaPari Feb 23, 2026
8c6b19e
Merge branch 'wave-gh-next21-lane-6'
KooshaPari Feb 23, 2026
da817cc
Merge branch 'wave-gh-next21-lane-7'
KooshaPari Feb 23, 2026
25e281d
Merge branch 'align/dev-local-changes'
KooshaPari Feb 23, 2026
4c53c48
Merge branch 'workstream-cpbv3-1'
KooshaPari Feb 23, 2026
8f9e8eb
merge: reconcile origin/main after local branch consolidation
KooshaPari Feb 23, 2026
62fd80c
cpb-0179/0181/0182: rollout gate, ratelimit aliases, antigravity clamp
KooshaPari Feb 23, 2026
84b161a
wave cpb-0186..0245: lanes 2-7 first-pass implementations
KooshaPari Feb 23, 2026
ad7bacc
wave cpb-0246..0275: mixed-lane pass (a/b/c)
KooshaPari Feb 23, 2026
152b35f
consolidate: wave leftovers + build import-path fixes + lane artifacts
KooshaPari Feb 23, 2026
ee3fee6
build: add missing quality:pre-push task for git hook
KooshaPari Feb 23, 2026
4e137cf
chore: prep for release batch
KooshaPari Feb 23, 2026
0954c5c
ci(codeql): upgrade github codeql action from v3 to v4
KooshaPari Feb 23, 2026
c8719c5
chore: add logs to gitignore
KooshaPari Feb 23, 2026
c04cfa1
chore: clean up logs
KooshaPari Feb 23, 2026
647597f
chore: executor auth fixes
KooshaPari Feb 23, 2026
b3170b8
chore: executor and translator updates
KooshaPari Feb 23, 2026
ba69d16
fix(ci): add git config to release-batch workflow
KooshaPari Feb 23, 2026
b5834b2
wave77: cliproxy lanes a-c next-30 fixes + targeted tests
KooshaPari Feb 23, 2026
ee05f5f
feat: add routing select handler, oauth token manager, pareto router,…
KooshaPari Feb 23, 2026
d422c4e
ci: trigger pr-test-build rerun
KooshaPari Feb 23, 2026
8cb539f
chore: commit all pending branch items and CI workflow fix
KooshaPari Feb 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 11 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,17 @@
# NOTE: Environment variables are only required when using remote storage options.
# For local file-based storage (default), no environment variables need to be set.

# ------------------------------------------------------------------------------
# Docker Runtime Configuration (overrides config.yaml)
# ------------------------------------------------------------------------------
# CLIPROXY_HOST= # Server host (default: "" for all interfaces)
# CLIPROXY_PORT=8317 # Server port (default: 8317)
# CLIPROXY_SECRET_KEY= # Management API secret key
# CLIPROXY_ALLOW_REMOTE=false # Allow remote management access (true/false)
# CLIPROXY_DEBUG=false # Enable debug logging (true/false)
# CLIPROXY_ROUTING_STRATEGY=round-robin # Routing strategy (round-robin/fill-first)
# CLIPROXY_API_KEYS=key1,key2,key3 # Comma-separated list of API keys

# ------------------------------------------------------------------------------
# Management Web UI
# ------------------------------------------------------------------------------
Expand Down
33 changes: 15 additions & 18 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,41 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
about: Report a bug in cliproxyapi++
title: '[BUG] '
labels: 'bug'
assignees: ''

---

**Is it a request payload issue?**
[ ] Yes, this is a request payload issue. I am using a client/cURL to send a request payload, but I received an unexpected error.
[ ] No, it's another issue.
[ ] Yes, this is a request payload issue. I am using a client/cURL to send a request payload, but I received an unexpected error.
[ ] No, it's another issue.

**If it's a request payload issue, you MUST know**
Our team doesn't have any GODs or ORACLEs or MIND READERs. Please make sure to attach the request log or curl payload.
To help us diagnose the problem, please provide as much detail as possible, including request logs or `curl` payloads.

**Describe the bug**
A clear and concise description of what the bug is.

**CLI Type**
What type of CLI account do you use? (gemini-cli, gemini, codex, claude code or openai-compatibility)

**Model Name**
What model are you using? (example: gemini-2.5-pro, claude-sonnet-4-20250514, gpt-5, etc.)
**cliproxyapi++ Configuration**
What provider and model are you using? (e.g. Kiro, Claude, Gemini)

**LLM Client**
What LLM Client are you using? (example: roo-code, cline, claude code, etc.)
What LLM Client are you using? (e.g. Roo Code, Claude Code, Cursor, etc.)

**Environment Information**
- **cliproxyapi++ Version**: (e.g., v6.0.0-++.1)
- **Deployment Method**: (e.g., Docker, Binary)
- **OS**: (e.g. macOS, Ubuntu 22.04)

**Request Information**
The best way is to paste the cURL command of the HTTP request here.
Alternatively, you can set `request-log: true` in the `config.yaml` file and then upload the detailed log file.
Please provide the `curl` command or the logs from `config.yaml` with `request-log: true`.

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**OS Type**
- OS: [e.g. macOS]
- Version [e.g. 15.6.0]

**Additional context**
Add any other context about the problem here.
42 changes: 42 additions & 0 deletions .github/policies/approved-external-endpoints.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Approved external endpoint hosts.
# Matching is exact host or subdomain of an entry.

accounts.google.com
aiplatform.googleapis.com
ampcode.com
api.anthropic.com
api.api.githubcopilot.com
api.deepseek.com
api.fireworks.ai
api.github.com
api.groq.com
api.kilo.ai
api.kimi.com
api.minimax.chat
api.minimax.io
api.mistral.ai
api.novita.ai
api.openai.com
api.roocode.com
api.siliconflow.cn
api.together.xyz
apis.iflow.cn
auth.openai.com
chat.qwen.ai
chatgpt.com
claude.ai
cloudcode-pa.googleapis.com
cloudresourcemanager.googleapis.com
generativelanguage.googleapis.com
github.com
golang.org
iflow.cn
integrate.api.nvidia.com
oauth2.googleapis.com
openrouter.ai
platform.iflow.cn
platform.openai.com
portal.qwen.ai
raw.githubusercontent.com
serviceusage.googleapis.com
www.googleapis.com
13 changes: 13 additions & 0 deletions .github/release-required-checks.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# workflow_file|job_name
pr-test-build.yml|go-ci
pr-test-build.yml|quality-ci
pr-test-build.yml|quality-staged-check
pr-test-build.yml|fmt-check
pr-test-build.yml|golangci-lint
pr-test-build.yml|route-lifecycle
pr-test-build.yml|test-smoke
pr-test-build.yml|pre-release-config-compat-smoke
pr-test-build.yml|distributed-critical-paths
pr-test-build.yml|changelog-scope-classifier
pr-test-build.yml|docs-build
pr-test-build.yml|ci-summary
16 changes: 16 additions & 0 deletions .github/required-checks.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# workflow_file|job_name
pr-test-build.yml|go-ci
pr-test-build.yml|quality-ci
pr-test-build.yml|quality-staged-check
pr-test-build.yml|fmt-check
pr-test-build.yml|golangci-lint
pr-test-build.yml|route-lifecycle
pr-test-build.yml|provider-smoke-matrix
pr-test-build.yml|provider-smoke-matrix-cheapest
pr-test-build.yml|test-smoke
pr-test-build.yml|pre-release-config-compat-smoke
pr-test-build.yml|distributed-critical-paths
pr-test-build.yml|changelog-scope-classifier
pr-test-build.yml|docs-build
pr-test-build.yml|ci-summary
pr-path-guard.yml|ensure-no-translator-changes
67 changes: 67 additions & 0 deletions .github/scripts/check-approved-external-endpoints.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
#!/usr/bin/env bash
set -euo pipefail

policy_file=".github/policies/approved-external-endpoints.txt"
if [[ ! -f "${policy_file}" ]]; then
echo "Missing policy file: ${policy_file}"
exit 1
fi

mapfile -t approved_hosts < <(grep -Ev '^\s*#|^\s*$' "${policy_file}" | tr '[:upper:]' '[:lower:]')
if [[ "${#approved_hosts[@]}" -eq 0 ]]; then
echo "No approved hosts in policy file"
exit 1
fi

matches_policy() {
local host="$1"
local approved
for approved in "${approved_hosts[@]}"; do
if [[ "${host}" == "${approved}" || "${host}" == *."${approved}" ]]; then
return 0
fi
done
return 1
}

mapfile -t discovered_hosts < <(
rg -No --hidden \
--glob '!docs/**' \
--glob '!**/*_test.go' \
--glob '!**/node_modules/**' \
--glob '!**/*.png' \
--glob '!**/*.jpg' \
--glob '!**/*.jpeg' \
--glob '!**/*.gif' \
--glob '!**/*.svg' \
--glob '!**/*.webp' \
'https?://[^"\047 )\]]+' \
cmd pkg sdk scripts .github/workflows config.example.yaml README.md README_CN.md 2>/dev/null \
| awk -F'://' '{print $2}' \
| cut -d/ -f1 \
| cut -d: -f1 \
| tr '[:upper:]' '[:lower:]' \
| sort -u
)
Comment on lines +27 to +45
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Using 2>/dev/null to suppress rg error messages can hide unexpected issues. A cleaner approach is to use the --no-messages flag, which is specifically designed to suppress errors about files that rg can't read, without hiding other potential problems.

Suggested change
mapfile -t discovered_hosts < <(
rg -No --hidden \
--glob '!docs/**' \
--glob '!**/*_test.go' \
--glob '!**/node_modules/**' \
--glob '!**/*.png' \
--glob '!**/*.jpg' \
--glob '!**/*.jpeg' \
--glob '!**/*.gif' \
--glob '!**/*.svg' \
--glob '!**/*.webp' \
'https?://[^"\047 )\]]+' \
cmd pkg sdk scripts .github/workflows config.example.yaml README.md README_CN.md 2>/dev/null \
| awk -F'://' '{print $2}' \
| cut -d/ -f1 \
| cut -d: -f1 \
| tr '[:upper:]' '[:lower:]' \
| sort -u
)
mapfile -t discovered_hosts < <(
rg -No --hidden --no-messages \
--glob '!docs/**' \
--glob '!**/*_test.go' \
--glob '!**/node_modules/**' \
--glob '!**/*.png' \
--glob '!**/*.jpg' \
--glob '!**/*.jpeg' \
--glob '!**/*.gif' \
--glob '!**/*.svg' \
--glob '!**/*.webp' \
'https?://[^"\047 )\\]]+' \
cmd pkg sdk scripts .github/workflows config.example.yaml README.md README_CN.md \
| awk -F'://' '{print $2}' \
| cut -d/ -f1 \
| cut -d: -f1 \
| tr '[:upper:]' '[:lower:]' \
| sort -u
)


unknown=()
for host in "${discovered_hosts[@]}"; do
[[ -z "${host}" ]] && continue
[[ "${host}" == *"%"* ]] && continue
[[ "${host}" == *"{"* ]] && continue
[[ "${host}" == "localhost" || "${host}" == "127.0.0.1" || "${host}" == "0.0.0.0" ]] && continue
[[ "${host}" == "example.com" || "${host}" == "www.example.com" ]] && continue
[[ "${host}" == "proxy.com" || "${host}" == "proxy.local" ]] && continue
[[ "${host}" == "api.example.com" ]] && continue
if ! matches_policy "${host}"; then
unknown+=("${host}")
fi
done

if [[ "${#unknown[@]}" -ne 0 ]]; then
echo "Found external hosts not in ${policy_file}:"
printf ' - %s\n' "${unknown[@]}"
exit 1
fi

echo "external endpoint policy check passed"
19 changes: 19 additions & 0 deletions .github/scripts/check-distributed-critical-paths.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/usr/bin/env bash
set -euo pipefail

echo "[distributed-critical-paths] validating filesystem-sensitive paths"
go test -count=1 -run '^(TestMultiSourceSecret_FileHandling|TestMultiSourceSecret_CacheBehavior|TestMultiSourceSecret_Concurrency|TestAmpModule_OnConfigUpdated_CacheInvalidation)$' ./pkg/llmproxy/api/modules/amp

echo "[distributed-critical-paths] validating ops endpoint route registration"
go test -count=1 -run '^TestRegisterManagementRoutes$' ./pkg/llmproxy/api/modules/amp

echo "[distributed-critical-paths] validating compute/cache-sensitive paths"
go test -count=1 -run '^(TestEnsureCacheControl|TestCacheControlOrder|TestCountOpenAIChatTokens|TestCountClaudeChatTokens)$' ./pkg/llmproxy/runtime/executor

echo "[distributed-critical-paths] validating queue telemetry to provider metrics path"
go test -count=1 -run '^TestBuildProviderMetricsFromSnapshot_FailoverAndQueueTelemetry$' ./pkg/llmproxy/usage

echo "[distributed-critical-paths] validating signature cache primitives"
go test -count=1 -run '^(TestCacheSignature_BasicStorageAndRetrieval|TestCacheSignature_ExpirationLogic)$' ./pkg/llmproxy/cache

echo "[distributed-critical-paths] all targeted checks passed"
53 changes: 53 additions & 0 deletions .github/scripts/check-docs-secret-samples.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#!/usr/bin/env bash
set -euo pipefail

patterns=(
'sk-[A-Za-z0-9]{20,}'
'ghp_[A-Za-z0-9]{20,}'
'AKIA[0-9A-Z]{16}'
'AIza[0-9A-Za-z_-]{20,}'
'-----BEGIN (RSA|OPENSSH|EC|DSA|PRIVATE) KEY-----'
)

allowed_context='\$\{|\{\{.*\}\}|<[^>]+>|\[REDACTED|your[_-]?|example|dummy|sample|placeholder'

tmp_hits="$(mktemp)"
trap 'rm -f "${tmp_hits}"' EXIT

for pattern in "${patterns[@]}"; do
rg -n --pcre2 --hidden \
--glob '!docs/node_modules/**' \
--glob '!**/*.min.*' \
--glob '!**/*.svg' \
--glob '!**/*.png' \
--glob '!**/*.jpg' \
--glob '!**/*.jpeg' \
--glob '!**/*.gif' \
--glob '!**/*.webp' \
--glob '!**/*.pdf' \
--glob '!**/*.lock' \
--glob '!**/*.snap' \
-e "${pattern}" docs README.md README_CN.md examples >> "${tmp_hits}" || true
done

if [[ ! -s "${tmp_hits}" ]]; then
echo "docs secret sample check passed"
exit 0
fi

violations=0
while IFS= read -r hit; do
line_content="${hit#*:*:}"
if printf '%s' "${line_content}" | rg -qi "${allowed_context}"; then
continue
fi
echo "Potential secret detected: ${hit}"
violations=1
done < "${tmp_hits}"

if [[ "${violations}" -ne 0 ]]; then
echo "Secret sample check failed. Replace with placeholders or redact."
exit 1
fi

echo "docs secret sample check passed"
31 changes: 31 additions & 0 deletions .github/scripts/check-open-items-fragmented-parity.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/usr/bin/env bash
set -euo pipefail

report="docs/reports/fragemented/OPEN_ITEMS_VALIDATION_2026-02-22.md"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The report path is hardcoded with the date 2026-02-22. This is brittle and will require manual updates for future reports. To make the script more robust, consider dynamically finding the latest report file in the docs/reports/fragemented/ directory instead of hardcoding the filename.

Suggested change
report="docs/reports/fragemented/OPEN_ITEMS_VALIDATION_2026-02-22.md"
report_dir="docs/reports/fragemented"
report="$(find "$report_dir" -name 'OPEN_ITEMS_VALIDATION_*.md' | sort -r | head -n 1)"

if [[ ! -f "$report" ]]; then
echo "[FAIL] Missing report: $report"
exit 1
fi

section="$(awk '/Issue #258/{flag=1} flag{print} /^- (Issue|PR) #[0-9]+/{if(flag && $0 !~ /Issue #258/) exit}' "$report")"
if [[ -z "$section" ]]; then
echo "[FAIL] $report missing Issue #258 section."
exit 1
fi

if echo "$section" | rg -q "Partial:"; then
echo "[FAIL] $report still marks #258 as Partial; update to implemented status with current evidence."
exit 1
fi

if ! echo "$section" | rg -qi "implemented"; then
echo "[FAIL] $report missing implemented status text for #258."
exit 1
fi

if ! rg -n "pkg/llmproxy/translator/codex/openai/chat-completions/codex_openai_request.go" "$report" >/dev/null 2>&1; then
echo "[FAIL] $report missing codex variant fallback evidence path."
exit 1
fi

echo "[OK] fragmented open-items report parity checks passed"
31 changes: 31 additions & 0 deletions .github/scripts/check-workflow-token-permissions.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/usr/bin/env bash
set -euo pipefail

violations=0
allowed_write_keys='security-events|id-token|pages'

for workflow in .github/workflows/*.yml .github/workflows/*.yaml; do
[[ -f "${workflow}" ]] || continue

if rg -n '^permissions:\s*write-all\s*$' "${workflow}" >/dev/null; then
echo "${workflow}: uses permissions: write-all"
violations=1
fi

if rg -n '^on:' "${workflow}" >/dev/null && rg -n 'pull_request:' "${workflow}" >/dev/null; then
while IFS= read -r line; do
key="$(printf '%s' "${line}" | sed -E 's/^[0-9]+:\s*([a-zA-Z-]+):\s*write\s*$/\1/')"
if [[ "${key}" != "${line}" ]] && ! printf '%s' "${key}" | grep -Eq "^(${allowed_write_keys})$"; then
echo "${workflow}: pull_request workflow grants '${key}: write'"
violations=1
fi
done < <(rg -n '^\s*[a-zA-Z-]+:\s*write\s*$' "${workflow}")
fi
done

if [[ "${violations}" -ne 0 ]]; then
echo "workflow token permission check failed"
exit 1
fi

echo "workflow token permission check passed"
Loading
Loading